SSH avec des clés

Linux Gazette n°96 - Novembre 2003

David Dorgan


Il a été porté à mon attention que de nombreuses personnes aiment se servir de ssh, que la majorité d'entres elles n'utilisent pas de clés, que certaines le font. Ce qui m'a frappé est que la plupart des personnes qui emploient des clés n'utilisent pas de phrases confidentielles (passphrases) avec celles-ci. Lorsque j'ai demandé à quelques utilisateurs pourquoi ils ne le faisaient pas, ils m'ont répondu qu'ils n'aimaient pas saisir leur mot de passe à chaque fois : ce n'est pas le cas.

Petite explication : supposons que vous souhaitiez indiquer à quelqu'un votre mot de passe concernant un compte sur une machine, mais que vous ne sachiez pas qui écoute, que la seule méthode de communication soit une communication en clair sur un canal non sécurisé. Que faut-il faire ? La cryptographie par clé publique est la solution : vous pouvez envoyer votre clé publique à tout le monde, vous conservez juste votre clé privée par devers vous.

Pour créer une clé, exécutez simplement ssh-keygen avec les options

ssh-keygen -t dsa

Une invite vous demande d'indiquer l'endroit où vous enregistrerez vos clés, par exemple, /home/utilisateur/.ssh/id_dsa et /home/utilisateur/.ssh/id_dsa.pub. Il vous faudra ensuite saisir un mot de passe ; les systèmes à clé publique sont très efficaces en termes de sécurité, mais comme ils sont aussi excellents que leur maillon le plus faible, ne faites pas en sorte que votre phrase confidentielle devienne le maillon le plus faible.

NE placez JAMAIS votre clé privée ni sur un serveur ni sur un disque dur. Personnellement, je la conserve juste sur mon ordinateur portable, nulle part ailleurs, jamais. Placez ensuite votre clé publique sur les hôtes distants dans le fichier /home/utilisateur/.ssh/authorized_keys.

Certaines personnes ont configuré leurs serveurs de façon à ce qu'ils n'acceptent que l'authentification par clés RSA, ce qui n'est pas une mauvaise idée.

Maintenant, pour ceux qui se plaignent d'avoir à saisir leur phrase confidentielle à chaque fois, ce n'est pas une réelle solution. Personnellement, je démarre X avec un script dans rc.local :

$ cat /etc/rc.local
ssh-agent xdm

Une fois dans votre serveur X avec votre identifiant utilisateur, saisissez ssh-add, puis votre phrase confidentielle. Dorénavant, à chaque nouvelle ouverture de xterm, vous pourrez vous connecter au serveur ssh sans être invité à saisir un mot de passe.

Un dernier point à noter : veillez à VERROUILLER votre station de travail chaque fois que vous vous éloigner de votre clavier, même pour quelques instants.

$Id: ssh-with-keys.html,v 1.4 2003/08/30 15:00:35 davidd Exp $

David a été un auteur très productif et envisage de contribuer davantage à cette tâche à l'avenir.

Copyright © 2003, David Dorgan

Copying license http://www.linuxgazette.com/copying.html

Paru dans le n°96 de la Linux Gazette de novembre 2003.

Traduction française par Jean-Christophe Penalva .

Relecture de la traduction française par Joëlle Cornavin .