SShSansPassword
From AleikoumWiki
Faire du ssh en utilisant le système d'échange de clés publiques
v1.0 par Erwan 'Laby' Ben Souiden e.bensouiden<@>gmail.com
Contents |
Objectif et contexte
Le but de ce howto est de proposer une procédure qui permet de se connecter (ou d'executer une commande) à distance via ssh sans avoir à spécifier de mot de passe.
Soit un utilisateur Alice sur la machine PC1 qui veut se connecter en tant que Bob sur la machine PC2.
Voici la procédure à suivre en temps normal :
[alice@PC1 alice]$ ssh bob@PC2 bob@PC2's password: [bob@PC2 bob]$
Manipulation
génération des clés d'Alice
Alice sur la machine PC1 doit générer son couple de clé :
[alice@PC1 alice]$ ssh-keygen -t dsa
dsa est le type de clé générée. (cf. man ssh-keygen pour plus d'infos)
Lors de l'execution de cette commande un chemin va être requis pour stocker les clés générées, typiquement : /home/alice/.ssh/id_dsa
Une pass-phrase est demandée mais cette dernière n'est pas obligatoire.
Une fois l'execution achevée dans le répertoire /home/alice/.ssh/ on retrouve les deux clés générées : id_dsa (clé privée) et id_dsa.pub (clé publique).
nota : si un couple de clé a déjà été généré (par exemple pour une procédure similaire sur une autre machine), il n'est
pas nécessaire de regénéré un couple de clé. Il est possible de réutiliser le couple de clé déjà présent dans le dossier .ssh/
Puis :
[alice@PC1 alice]$ cp /home/alice/.ssh/id_dsa.pub /home/alice/.ssh/authorized_keys
connexion sans mot de passe
Bob sur la machine PC2 doit copier le contenu de id_dsa.pub d'Alice (qui se trouve sur PC1 : /home/alice/.ssh/id_dsa.pub) dans son fichier authorized_keys qui se trouve dans /home/bob/.ssh/ (eventuellement à créer touch /home/bob/.ssh/authorized_keys).
nota : si un utilisateur Charles sur PC3 veut aussi se connecter automatiquement en tant que Bob sur PC2, il doit recopier A LA LIGNE SUIVANTE sa clé publique dans /home/bob/.ssh/authorized_keys
De plus il est important que le umask de /home/bob/.ssh/authorized_keys (et de facon générale tout les authorized_keys) soit 644
et appartienne à bob.
le test
En théorie :
[alice@PC1 alice]$ ssh bob@PC2 [bob@PC2 bob]$
remarque : cette procédure permet de réaliser toutes les actions reposant sur ssh sans fixer de mots de passes !
Par exemple la commande scp ne demandera plus aucun password !