cClaude.rocks ☕ Le blog

[Nouvelles technologies du libre, sciences et coups de gueule…]

Menu
đŸ˜€ Ce billet a Ă©tĂ© Ă©ditĂ© le : 2024-08-09

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 type RSA c’est sa taille qui Ă©tait le critĂšre de complexitĂ© et on utilise l’option -b pour dĂ©finir cette taille. Pour ed25519, 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

኿

â„č 2006 - 2024 | 🏠 Accueil du domaine | 🏡 Accueil du blog