SSH : authentification par clé (Ed25519)

Pour sécuriser la connexion à un serveur SSH, on peut remplacer le mot de passe par une paire de clés, puis interdire l’authentification par mot de passe.

Principe : la clé privée reste sur votre poste (le client) et ne le quitte jamais. La clé publique est copiée sur le serveur.

1. Générer la paire de clés sur le client

ssh-keygen -t ed25519 -C "moi@poste"

Ed25519 est le type recommandé et, depuis OpenSSH 9.5, celui que ssh-keygen crée par défaut. Les clés DSA ne sont plus acceptées par les versions récentes d’OpenSSH. Si un vieil équipement exige RSA : ssh-keygen -t rsa -b 4096.

Protégez la clé privée par une phrase de passe : quiconque obtient le fichier sans phrase de passe peut se connecter à votre place. ssh-agent évite de la retaper à chaque connexion.

Les fichiers créés sont ~/.ssh/id_ed25519 (clé privée) et ~/.ssh/id_ed25519.pub (clé publique).

2. Copier la clé publique sur le serveur

ssh-copy-id utilisateur@serveur

La commande ajoute la clé publique au fichier ~/.ssh/authorized_keys de l’utilisateur sur le serveur, avec les bons droits. Sans ssh-copy-id, copiez le contenu du fichier .pub à la fin de ce fichier, puis :

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

Testez : ssh utilisateur@serveur doit vous connecter sans demander le mot de passe du compte.

3. Interdire les mots de passe sur le serveur

Gardez une session ouverte pendant cette étape, pour pouvoir corriger en cas d’erreur. Sous Debian, le fichier principal inclut le répertoire /etc/ssh/sshd_config.d/ :

vi /etc/ssh/sshd_config.d/10-cles.conf
PubkeyAuthentication yes
PasswordAuthentication no
KbdInteractiveAuthentication no
sshd -t
systemctl reload ssh

Ouvrez une nouvelle connexion pour vérifier avant de fermer l’ancienne.

Commentaires

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. Découvrez comment les données de vos commentaires sont traitées.