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.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.