Le protocle ssh sâappuie sur une paire de clĂ©s, pour utiliser pleinement ce protocole vous avez besoin dâune clĂ© ssh
bien Ă vous.
Dans le cas oĂč vous avez dĂ©jĂ une clĂ© ssh
notez que lâalgorithme de hachage |RSA SHA-1
est progressivement dĂ©prĂ©ciĂ© dans les systĂšmes dâexploitation et les clients ssh
en raison de diverses failles de sĂ©curitĂ©. Ainsi un certain nombre de ces outils rejettent dĂ©sormais purement et simplement lâutilisation de cet algorithme : Les paires de clĂ©s publique-privĂ©e RSA
ne sont plus considérées comme sûre.
En 2024, si vous avez une clé RSA
assurez-vous quâelle est au moins une taille de 3072 octets (la valeur maximum Ă©tant 4096). Dans ce cas et uniquement dans ce cas le chiffrement reste sĂ©curisĂ©.
Ă partir de maintenant il est conseillĂ© dâutiliser un type de clĂ© plus moderne et plus sĂ»r tel que ed25519
.
Pour créer votre propre clé ssh
au format ed25519
 ; par exemple pour vous connecter de maniÚre sécurisée à un serveur git
, vous devez simplement utiliser la commande suivante :
â ââ
ssh-keygen -o -a 100 -t ed25519 -C "Commentaire"
-t
 : Spécifie le type de clé à créer, dans notre cas le Ed25519.-C
 : Cette option qui permet tout simplement dâajouter un commentaire Ă votre clĂ©. Comme valeur il est raisonnable dâutiliser 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). Je vous invite fortement lâutilisation de paramĂštre pour vous aider Ă gĂ©rer vos clĂ©s.-
-a
 : Pour une clé de typeRSA
câest sa taille qui Ă©tait le critĂšre de complexitĂ© et on utilise lâoption-b
pour définir cette taille. Poured25519
, la complexitĂ© est dĂ©finir Ă lâaide de lâoption-a
, il sâagit du nombre de tours de KDF (« Key Derivation Function »). Plus le nombre est Ă©levĂ©, plus la vĂ©rification de la phrase de passe est lente, ce qui augmente la rĂ©sistance au craquage brutal du mot de passe en cas de vol de la clĂ© privĂ©e. -o
 : Sauvegarde la clé privée en utilisant le nouveau format OpenSSH plutÎt que le format PEM. En fait, cette option est implicite lorsque vous spécifiez le type de clé comme étant ed25519. On pourra donc omettre ce paramÚtre.-f
 : SpĂ©cifie le nom du fichier de la clĂ© gĂ©nĂ©rĂ©e. Si vous voulez qu'il soit dĂ©couvert automatiquement par l'agent SSH, il doit ĂȘtre stockĂ© dans le rĂ©pertoire par dĂ©faut.ssh
dans votre répertoire personnel.
Et du coup, cela donne :
â â â
ssh-keygen -o -a 100 -t ed25519 -f ~/.ssh/id_ed25519 -C "${USER}@${HOSTNAME}.$( date +'%Y-%m' )"
Une phrase secrÚte vous sera alors demandée de maniÚre interactive.
Par défaut :
- La clé privée se nomme :
~/.ssh/id_ed25519
(Ce fichier vous le garder prĂ©cieusement lĂ oĂč il est et vous ne le communiquer Ă personne sous aucun motif). - La clĂ© publique se nomme :
~/.ssh/id_ed25519.pub
. Câest ce fichier que vous utiliserez lorsquâune application vous demande votre clĂ©.
Notez que comme commentaire, je préconise la chaßne ${USER}@${HOSTNAME}.$( date +'%Y-%m' )
qui vous permet de savoir par qui elle a été créée, sur quelle machine et quand. La derniÚre information, vous permettant de vous donner de rÚgle pour changer votre clé de temps en temps. Si vous administrez un parc de machine, vous aurez besoin de clés différentes sur chaque machine, que les autres informations vous permettront de gérer.
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 :
On peut dans suivant le cas ignorer la phrase secrÚte en mettant un texte vide :
â â â
ssh-keygen -a 100 -t ed25519 -C "${USER}@${HOSTNAME}.$( date +'%Y-%m' )" -f "${HOME}/.ssh/id_ed25519" -N ''
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='appuser' # User for the application
APP_NAME='appname' # Name of the application
ssh-keygen -a 100 -t ed25519 -C "${APP_USER}_${APP_NAME}@${HOSTNAME}.$( date +'%Y-%m' )" -f "${HOME}/.ssh/${APP_USER}_${APP_NAME}_id_ed25519" -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 # 755 est aussi une valeur acceptable.
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_* # chmod u=rw,go= ~/.ssh/id_*
chmod 644 ~/.ssh/id_*.pub # chmod a=r,u+w ~/.ssh/id_*.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_*
# chmod u=rw,go= ~/.ssh/id_*
Le contenu de votre clé publique est un simple texte que vous pouvez copier-coller trÚs facilement.
cat ~/.ssh/_id_ed25519.pub
Vous pouvez également utiliser la copie si vous avez positionné les bits de lecture pour le groupe et les autres comme indiqué plus haut (chmod 644
). Mais souvent vous transmettrez cette clĂ© Ă lâaide dâun copier-coller sur une application web, câest donc la commande cat
qui vous servira le plus.
Liens
- OpenSSH 8.3 released (and ssh-rsa deprecation notice)
- Ubuntu 22.04 SSH the RSA key isn't working since upgrading from 20.04
- Upgrade Your SSH Key to Ed25519
኿