6 avr. 2012

Gerer plusieurs id avec ssh

On doit souvent se connecter de façon sécurisé par ssh, par exemple vers un dépôt git, svn, ou pour ouvrir une session ssh. On veut pas forcément utiliser la même clé partout, des fois qu'elle deviendrait compromise, ou simplement parce que la clé nous est imposée.



 Dans votre home vous pouvez créer un répertoire .ssh (s'il n'est pas déjà crée), et la commande ssh va y chercher vos préférences et configurations éventuelles:
MacBook-Pro-de-Paraita% tree ~/.ssh
/Users/milkyboi/.ssh
├── backup
│   ├── id_rsa
│   └── id_rsa.pub
├── config
├── github
│   ├── id_rsa
│   └── id_rsa.pub
├── id_rsa
├── id_rsa.pub
├── known_hosts
└── pacagrid
    ├── id_rsa
    └── id_rsa.pub

3 directories, 10 files
J'ai dans cet exemple crée des sous répertoires contenant chacun le couple de clés . Ensuite l'idée c'est d'associer ces clés à des url en particulier, par exemple pour me connecter en SSH à PACAGrid, qui est une grille de calcul auquel on a accès pendant notre Master, je ferais normalement:
ssh paraita@url.destination
Et le serveur distant me demanderait mon mot de passe. Grâce au fichier ~.ssh/config, vous pourez d'une part associer une identité (une clé privée) a un nom de domaine, mais aussi poser un raccourci sur un nom de domaine, donc si l'url distante est de la forme xhrojjj.rughdnogj0.toto.titi.com vous pourrez l'associer à titi tout simplement. Donc dans mon fichier de config j'ai:
Host pacagrid
HostName url.distante.super.compliqué.com
User paraita
IdentityFile ~/.ssh/pacagrid/id_rsa
du coup, au lieu de me connecter ainsi:
ssh paraita@ url.distante.super.compliqué.com
ou pire, s'il faut absolument utiliser sa clé:
ssh paraita@ url.distante.super.compliqué.com -i ~/.ssh/pacagrid/id_rsa
j'aurais juste à faire:
ssh paraita@pacagrid
Et c'est fini ! ATTENTION cependant, ssh peut etre très tatillon sur vos clés, et il est préférable (plus secure) de fixer les permissions sur tout vos fichiers dans .ssh à 700 (rwx seulement pour vous).

Aucun commentaire: