lundi 12 décembre 2011

SSH sans taper de mot de passe

J'utilise le SSH pour uploader des fichiers sur mon serveur web et comme j'ai pas mal recours à la ligne de commande j'ai configuré le ssh pour utiliser une clé privée plutôt que d'avoir à retaper mon mot de passe à chaque fois.

Une clé privée fonctionne de la même manière qu'un mot de passe sauf qu'elle est envoyée automatiquement au serveur SSH.

Voilà comment effectuer cette configuration:

Créer un couple clé privée / clé publique ssh-keygen Copier votre clé publique sur le serveur distant scp ~/.ssh/id_rsa.pub user@godaddy:.ssh/authorized_keys Normalement ces deux étapes suffisent pour vous connecter sans mot de passe. Le client ssh choisira de lui même la bonne clé. Pour ma part j'ai du désactiver la sélection automatique des clés pour d'obscures raisons de compatibilité avec un serveur SVN donc je spécifie la clé dans la ligne de commande: ssh -i /Users/username/.ssh/servername.com sshuser@servername.com Lors de la génération de la clé privée ssh-keygen vous demande de spécifier un mot de passe pour accéder à la clé. Cette option est bien sûr beaucoup plus sécurisée (la possession de la clé ne suffit pas à ce connecter) mais nécessite de taper son mot de passe de clé ce qui perd un peu de l'intérêt d'utiliser une clé. Cependant sur de nombreux systèmes on ne doit pas taper le mot de passe à chaque fois. (Par exemple seulement à la première utilisation de la journée). Vous pouvez rajouter des utilisateurs en ajoutant des clés sur le serveur ainsi: cat /Users/username/.ssh/id_rsa_maggy.pub | ssh user@godaddy “cat >> ~/.ssh/authorized_keys” Note technique:

Il est important de comprendre que le client ssh ne transmet pas directement votre clé privée. On perdrait alors toute sécurité. Le processus d'authentification est le suivant:

- Serveur encode un challenge avec votre clé publique et l'envoie au client.
- Le client décrypte le challenge avec sa clé privée et la réencrypte avec la clé publique du serveur et envoie le tout au serveur.
- Le serveur vérifie que vous avez bien décodé le challenge en décryptant votre réponse grâce à sa clé privée.

Aucun commentaire:

Enregistrer un commentaire