Configurer la clé SSH
Connexion avec une paire de clés au lieu d'un mot de passe.
Une clé SSH se compose d'une partie privée qui reste sur votre ordinateur et d'une partie publique qui est placée sur le serveur.
Pourquoi une clé est utile
- Plus sûre qu'un mot de passe : une clé est bien trop longue pour être devinée ou testée. Les programmes automatisés essaient en permanence des mots de passe issus de dictionnaires et de combinaisons aléatoires.
- Pas de mot de passe sur le réseau : lors de la connexion, votre ordinateur prouve avec la clé privée qu'il est autorisé. Le secret lui-même n'est jamais transmis.
- Plus pratique : après l'installation, plus besoin de mot de passe, et les scripts ou les sauvegardes peuvent se connecter automatiquement.
- Condition d'une meilleure protection : ce n'est qu'avec une clé qu'on peut désactiver en toute sécurité la connexion par mot de passe (voir Sécuriser SSH).
1. Créer une clé sur votre ordinateur
ssh-keygen -t ed25519 -C "nom@appareil"
La clé est enregistrée dans ~/.ssh/id_ed25519 (privée) et ~/.ssh/id_ed25519.pub (publique). Une phrase de passe est recommandée.
2. Copier la clé publique sur le serveur
ssh-copy-id -i ~/.ssh/id_ed25519.pub root@ADRESSE-IP
Cela fonctionne aussi sous Windows (PowerShell). Si ssh-copy-id est absent, collez le contenu de id_ed25519.pub dans /root/.ssh/authorized_keys.
3. Tester la connexion
ssh -i ~/.ssh/id_ed25519 root@ADRESSE-IP
Solution de remplacement : clé RSA
ed25519 est le choix recommandé. Certains programmes, anciens appareils et panneaux ne peuvent toutefois pas utiliser ed25519. Dans ce cas, utilisez une clé RSA d'au moins 3072 bits, de préférence 4096 :
ssh-keygen -t rsa -b 4096 -C "nom@appareil"
La marche à suivre est la même que ci-dessus : la partie publique ~/.ssh/id_rsa.pub est envoyée sur le serveur avec ssh-copy-id -i ~/.ssh/id_rsa.pub root@ADRESSE-IP, et la connexion se teste avec ssh -i ~/.ssh/id_rsa root@ADRESSE-IP. Ne transmettez jamais la clé privée id_rsa.
Suite : Créer un utilisateur avec sudo et Sécuriser SSH.