Wednesday, February 14, 2007

deadketchup: ssh sans mot de passe.

Petit tour sur le blog d'un collègue DS-dever qui postait dans la catégorie "trucs&astuces linux":



Comment se logger sur un ssh automatiquement sans mon de passe ?
En passant par l’utilisation d’une clef publique pardi.

miguel@work$ ssh-keygen –t dsa
miguel@work$ scp ~/.ssh/id_dsa.pub miguel@jolan:id_dsa.pub.work
miguel@work$ ssh miguel@jolan
miguel@jolan$ cat id_dsa.pub.work >> ~/.ssh/authorized_keys2

En gros, c’est tout.
La prochaine fois que vous vous connecterez en ssh chez vous, ça sera automatique.
c’est sympa, mais ça ne marche qu’avec une clé sans “passphrase”. En d’autre termes, n’importe qui qui a physiquement accès à la machine n’a besoin de rien d’autre pour se servir de la clé dérobée par après.

Mon truc à moi, c’est de mettre une passphrase, et d’utiliser ssh-agent. On fait le même genre de manip’ que ce que tu montres, mais en début de session, je lance qqch du genre



sylvain@h0me$ ssh-agent >.sshconf ; source .sshconf ; rm .sshconf
Agent pid 30943
sylvain@h0me$ ssh-add
Enter passphrase for /home/sylvain/.ssh/id_rsa:***************
Identity added: /home/sylvain/.ssh/id_rsa
sylvain@h0me$

Et voilà. La clé privée est en réalité encryptée à l’aide de la passphrase, ce qui nous donne plus de sécurité, et j’ai démarré un “démon” (l’agent ssh) qui a pu décrypter cette clé. Il sera utilisé dans tous les appels suivants à ssh (y compris pour les rsync réguliers entre 2 machines, ou un CVS au-dessus de ssh).

1 comment:

PypeBros said...

trouvaille intéressante, le package `autossh`, qui réétablit un tunnel ssh en cas d'échec, réessaie de moins en moins souvent si la machine n'a pas répondu, etc.