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 :
key.pub
qui contient les données ssh-rsa AAAA..w== mail@example.com
.key
qui contient les données -----BEGIN/END OPENSSH PRIVATE KEY-----
.
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. (File decryption fails (wrong final block length) on Windows Archive du 03/09/2015 le 04/04/2020)
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
How to Setup Rsync with SSH on UNIX _ Linux (rsync without password) 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
Use SSH Keys with PuTTY on Windows Archive du 04/12/2014 le 03/02/2021
Ajouter au fichier ~/.ssh/config
:
IdentityFile ~/.ssh/id_rsa IdentityFile ~/.ssh/id_rsa_old IdentityFile ~/.ssh/id_ed25519