====Création d'une clé==== ===Sans mot de passe=== Cela peut être utile pour un système d'intégration continue qui souhaite pousser des données dans un autre dépôt. Alors, cette clé secrète stockée dans le logiciel de CI et dans le gestionnaire de version. Il faut impérativement saisir un mot de passe vide sinon ''git push'' le demandera et il ne sera pas possible de le saisir puisque exécuté depuis un script. L'adresse mail doit être la même que celle qui aura été utilisé pour faire un ''git commit''. Ce n'est pas obligatoire mais conseillé pour s'y retrouver. ssh-keygen -m PEM -t rsa -b 4096 -f 'reponame.key' -N "" -C "mail@example.com" L'option ''-m PEM'' va créer une clé avec l'entête ''%%-----BEGIN RSA PRIVATE KEY-----%%''. C'est fortement conseillé car une clé générée au format ''%%-----BEGIN OPENSSH PRIVATE KEY-----%%'' sur Windows ne sera pas forcément compatible avec Linux, contrairement au format RSA. Cela va créer deux fichiers : * le fichier ''key.pub'' qui contient les données ''ssh-rsa AAAA..w== mail@example.com'' * le fichier ''.key'' qui contient les données ''%%-----BEGIN/END OPENSSH PRIVATE KEY-----%%''. ===Convertir une clé ''OPENSSH'' au format ''RSA''=== Il est possible de convertir les données ''%%-----BEGIN/END OPENSSH PRIVATE KEY-----%%'' en ''%%-----BEGIN RSA PRIVATE KEY-----%%'' par la commande (attention, cela remplace le fichier d'origine) : ssh-keygen -p -m PEM -f file.key C'est d'ailleurs plutôt conseillé, OpenSSH ayant du mal à fonctionner à l'identique entre Windows et Linux. ([[https://github.com/travis-ci/travis-ci/issues/4746|File decryption fails (wrong final block length) on Windows]] {{ ::prog:travis:file_decryption_fails_wrong_final_block_length_on_windows_issue_4746_travis-ci_travis-ci_github_2020-04-04_6_53_38_pm_.html |Archive du 03/09/2015 le 04/04/2020}}) ====Connexion sans mot de passe==== Pour se connecter du PC ''A'' vers le PC ''B'' : Sur le PC ''A'' : ssh-keygen et appuyez directement sur Entrée lors de la sélection du mot de passe. Sur le PC ''A'' vers le PC ''B'': ssh-copy-id -i ~/.ssh/id_rsa.pub user@host [[http://www.thegeekstuff.com/2011/07/rsync-over-ssh-without-password|How to Setup Rsync with SSH on UNIX _ Linux (rsync without password)]] {{ :prog:ssh:how_to_setup_rsync_with_ssh_on_unix_linux_rsync_without_password_2020-04-29_7_53_18_pm_.html |Archive du 15/04/2011 le 29/04/2020}} Sinon, il est possible de remplacer la commande ''ssh-copy-id'' par un ajout manuel du contenu du fichier ''~/.ssh/id_rsa.pub'' au fichier distant ''~/.ssh/authorized_keys'' [[https://devops.ionos.com/tutorials/use-ssh-keys-with-putty-on-windows/|Use SSH Keys with PuTTY on Windows]] {{ :prog:ssh:use_ssh_keys_with_putty_on_windows_ionos_devops_central_03_02_2021_15_34_34_.html |Archive du 04/12/2014 le 03/02/2021}} ====Trucs et astuces==== * Gérer plusieurs clés privées Ajouter au fichier ''~/.ssh/config'' : IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_rsa_old IdentityFile ~/.ssh/id_ed25519