Depuis que j’utilise ssh, je n’ai jamais essayé l’authentification par un système de clés publique/privée, croyant que la mise en place était compliquée. Finalement, en 2 lignes de commandes, c’est réglé !
Quel est l’intérêt ?
- Une seule authentification et un seul mot de passe pour se connecter à plusieurs serveurs
- Renforcer la sécurité, car il faut subtiliser 2 informations au lieu du simple mot de passe.
Cool, comment on fait ?
Création des clés publique/privée
Il faut commencer par créer un couple de clés publique / privée chez le client. Celles-ci seront cryptées avec le protocole DSA :
$ ssh-keygen -t rsa
Sauvegardez la clé à l’endroit par défaut (~/.ssh), et choisissez une passphrase pour protéger votre clé privée.
Il est recommandé d’utiliser une bonne passphrase !
La clé publique a été crée avec la clé privé et elles sont toutes deux dans le même répertoire (~/.ssh par défaut).
Envoi de la clé publique au serveur
Il faut maintenant envoyer au serveur votre clé publique pour qu’il puisse vous chiffrer des messages.
Ceci est possible facilement avec ssh-copy-id, un script qui utilise ssh pour envoyer votre clé publique :
$ ssh-copy-id -i ~/.ssh/id_rsa.pub username@ipaddress
Il vous sera alors demandé votre mot de passe ssh.
Et voila !
L’authentification par clé publique/privé devrait fonctionner. Vous pouvez donc maintenant utiliser votre passphrase pour vous connecter à votre serveur 🙂
Pour plus de précision, regardez ici.
Autres avantages :
* La clé peut être confiée à une autre personne pour déléguer un accès à son compte, sans pour autant communiquer son mot de passe
* La clé peut être révoquée, sans pour autant changer de mot de passe.