Un mot de passe peut être deviné mille fois par seconde par une machine qui ne dort jamais. Une clé, non : il n'y a rien d'assez court à essayer. Le changement coûte dix minutes et supprime toute une famille d'attaques.
Générer la paire
ssh-keygen -t ed25519 -C "you@yourmachine"
Ed25519 est la valeur par défaut d'aujourd'hui : courte, rapide et solide. Donnez-lui une phrase de passe - si le portable est volé, cette phrase est la seule chose entre le voleur et vos serveurs.
Installer la moitié publique
ssh-copy-id ops@your-server
Cela ajoute la clé publique à ~/.ssh/authorized_keys sur le serveur. La moitié privée ne quitte jamais votre machine et ne doit jamais le faire.
La tester dans une NOUVELLE fenêtre
Ne fermez pas la session dans laquelle vous êtes. Ouvrez un second terminal et connectez-vous avec la clé. Si cela échoue, il vous reste la première fenêtre pour réparer.
ssh ops@your-server
Puis couper les mots de passe
# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
# then
systemctl reload ssh
Recharger, pas redémarrer : le rechargement garde les sessions en cours vivantes, donc une erreur ne vous déconnecte pas.
Quand cela ne marche pas
- Les permissions. SSH refuse les clés dans un répertoire que d'autres peuvent lire :
chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys - Le mauvais utilisateur. La clé va dans le répertoire personnel de l'utilisateur sous lequel vous vous connectez, pas dans celui de root.
- Lisez la raison.
ssh -v ops@serverimprime chaque clé proposée et pourquoi chacune a été refusée.
Une clé par machine, et non une clé recopiée sur toutes. Quand un portable est perdu, vous retirez une ligne sur le serveur, et rien d'autre ne bouge.