SÉCURITÉ Ssh sans mot de passe

Un article de Gentoo Linux Wiki.


Ce document décrit comment s'identifier auprès d'un serveur SSH sans avoir à taper de mot de passe.

Sommaire

[modifier] Configuration du client

Comme il existe deux versions du protocole SSH (versions 1 et 2), les identités sont liées à une version du protocole. La plupart des serveurs SSH utilisent la version 2 du protocole, à cause d'une vulnérabilité de la version 1.

Liste des protocoles et de leurs types d'identité :

Protocole Type Ligne de commande
Version 1 RSA1 -t rsa1
Version 2 RSA -t rsa
Version 2 DSA -t dsa

Après avoir déterminé quelle type d'identité vous voulez, il est temps de créer votre paire de clefs ssh : clef publique et clef privée. (Dans cet article, nous utilisons le cryptage DSA.)

$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/gerard/.ssh/id_dsa):

La localisation par défaut convient, vous n'avez qu'à appuyer sur <Entrée>

Enter passphrase (empty for no passphrase):

Appuyez à nouveau sur <Entrée> pour une phrase de passe vide, du moins si vous ne voulez pas être ennuyé avec des histoires de mot de passe. On pourrait également mettre en place un agent ssh (ssh-agent) pour s'occuper des phrases de passe, mais la mise en pratique de cette technique dépasse le cadre de cet article.

Enter same passphrase again:

Appuyez à nouveau sur la touche <Entrée>.

key fingerprint is:
6f:c5:86:c7:67:69:02:1a:e4:a9:20:e6:16:13:5d:e5 username@host


Cette opération a crée deux fichiers dans ~/.ssh:


Fichier :

-rw------- 1 bob users 668 Jun 17 23:52 id_dsa
-rw-r--r-- 1 bob users 602 Jun 17 23:52 id_dsa.pub

[modifier] Configuration du serveur

Le fichier nommé `id_dsa.pub` est votre clef publique, que vous devez copier sur le serveur. Ce fichier doit être ajouté à la fin du fichier `authorized_keys` qui devrait se trouver dans le répertoire ~/.ssh sur le serveur.

Copiez `id_dsa.pub` sur le système distant :

$ cd ~/.ssh
$ scp id_dsa.pub username@remotebox:

Entrez votre mot de passe pour transférer le fichier, de manière à ce que nous puissions mettre à jour le fichier `authorized_keys` plus tard.

$ ssh -l username remotebox
Password:
Last login: Mon Jun 14 09:53:58 2004
$

Apposez le fichier copié `id_dsa.pub` au fichier `authorized_keys` (qui se trouve dans le répertoire ~/.ssh) :

$ cat id_dsa.pub >> .ssh/authorized_keys

Effacez ensuite le fichier `id_dsa.pub` et déconnectez-vous :

$ rm id_dsa.pub
$ exit

[modifier] Configuration du serveur (deuxième méthode)

Il existe une méthode de configuration plus rapide. Vous pouvez en une seule commande ajouter votre clé dans le fichier `authorized_keys` du serveur distant grâce à `ssh-copy-id`. Pour cela procédez comme suit :

$ ssh-copy-id -i ~/.ssh/id_dsa.pub username@remotebox

[modifier] Test

$ ssh -l username remotebox
Last login: Thu Jun 17 23:55:36 2004 from 192.168.34.2
$

Si aucun mot de passe ne vous a été demandé, c'est que tout fonctionne correctement. Dans le cas contraire, vérifiez la configuration de sshd : le fichier 'sshd_config' devrait contenir les paramètres suivants :

Fichier : /etc/ssh/sshd_config
 # Allow Identity Auth for SSH1?
 RSAAuthentication yes
 
 # Allow Identity Auth for SSH2?
 PubkeyAuthentication yes

Répétez à présent la configuration vue dans la partie `Serveur` pour chacun des serveurs auxquels vous voulez pouvoir vous connecter sans avoir à taper de mot de passe.

[modifier] Liens internes

[modifier] Liens externes

Autres langues