Le protocole ssh sâappuie sur une paire de clĂ©, pour lâutiliser ce protocole vous avez besoin dâune paire de clĂ© ssh
bien Ă vous.
ATTENTION Les paires de clés publique-privée RSA
ne sont plus considĂ©rĂ©es comme sĂ»re, voir le billet đ Comment crĂ©er une paire de clĂ©s pour ssh en 2024.
Pour créer votre propre clé ssh
au format rsa
(ce qui est demandé par exemple pour un serveur git
), vous devez simplement utiliser la commande suivante :
âââ
ssh-keygen -t rsa
Une astuce cependant, pour vous aider Ă gĂ©rer et identifier vos clĂ©s, je vous conseille fortement lâutilisation du paramĂštre -C
. Comme valeur vous pouvez mettre votre nom dâutilisateur et le nom de la machine oĂč la clĂ© a Ă©tĂ© gĂ©nĂ©rĂ©e (oĂč la clĂ© privĂ©e est hĂ©bergĂ©e).
Par ailleurs, histoire dâavoir une clĂ© assez robuste, je vous encourage Ă ce quâelle soit assez longue. Cela se configure lâaide du paramĂštre -b
. Comme valeur, je préconise 4096.
Et du coup, cela donne :
â ââ
ssh-keygen -t rsa -b 4096 -C "${USER}@${HOSTNAME}"
Par défaut, la clé privée est stockée dans ~/.ssh/id_rsa
(ce fichier vous le garder prĂ©cieusement lĂ oĂč il est et vous ne le communiquer Ă personne). La clĂ© publique associĂ©e sera alors : ~/.ssh/id_rsa.pub
.
Automatisation, clé ssh par défaut.
Si vous devez créer une clé ssh
depuis un script vous devrez prĂ©ciser dâautre paramĂštres, cela donnera quelque chose comme :
âââ
ssh-keygen -t rsa -b 4096 -C "your comment" -f "${HOME}/.ssh/my_id_rsa" -N ''
Là encore, je vous encourage à utiliser le champ commentaire pour identifier vos clés, comme ceci :
â â â
ssh-keygen -t rsa -b 4096 -C "${USER}@${HOSTNAME}" -f "${HOME}/.ssh/id_rsa" -N ''
Pour stoker votre clĂ©, il est souvent raisonnable (voire prĂ©fĂ©rable) dâutiliser le nom de fichier par dĂ©faut : ~/.ssh/id_rsa' (
${HOME}/.ssh/id_rsa`).
Automatisation, crĂ©ation dâune clĂ© personnalisĂ©e
Pour la configuration dâun service ou tout usage trĂšs spĂ©cifique, dans ce cas câest une bonne idĂ©e dâutiliser le champ commentaire pour identifier le nom du service, lâutilisateur et/ou le fichier relatif Ă cette configuration.
Par exemple :
APP_USER='testuser' # User for the application
APP_NAME='gitlab' # Name of the application
ssh-keygen -t rsa -b 4096 -C "${APP_USER}_${APP_NAME}@${HOSTNAME}" -f "${HOME}/.ssh/${APP_USER}_${APP_NAME}_id_rsa" -N ''
Utilisation de plusieurs clés ssh
Les systÚmes Linux prennent en compte généralement la clé par défaut, mais ils ignorent les autres clés. Pour résoudre cela vous devez utiliser le code suivant :
eval $( ssh-agent -s ) # Seulement une fois par session.
ssh-add [file âŠ] # Vous pouvez enregistrer plusieurs clĂ©s Ă la fois
Pour voir les clés connues par votre systÚme vous pouvez utiliser la commande suivante :
ssh-add -l
Protection de vos clés
Your public key can be public, what matters is that your private key is private.
Votre dossier .ssh
doit avoir les droits dâĂ©criture que pour votre utilisateur. Une bonne pratique est de le rendre accessible quâĂ vous en lecture et Ă©criture.
chmod 700 ~/.ssh
Votre clé privée doit rester privée. Cette configuration est acceptable, mais pas nécessaire. Votre clé publique est accessible.
chmod 600 ~/.ssh/id_rsa # chmod u=rw,go= ~/.ssh/id_rsa
chmod 644 ~/.ssh/id_rsa.pub # chmod a=r,u+w ~/.ssh/id_rsa.pub
Votre clĂ© privĂ©e doit rester privĂ©e, mais le fichier qui contient votre clĂ© publique peut lâĂȘtre aussi.
â â â
chmod 600 ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
# chmod u=rw,go= ~/.ssh/id_rsa ~/.ssh/id_rsa.pub
Le contenu de votre clé publique est un simple texte que vous pouvez copier-coller trÚs facilement.
cat ~/.ssh/id_rsa.pub
Références
- Documentation Red Hat sur le [Protocole SSH]
http://web.mit.edu/rhel-doc/4/RH-DOCS/rhel-rg-fr-4/ch-ssh.html
(lien cassé)
኿