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 |
[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
- TIP keychain (vers le Wiki anglais)
- Fast Copy Over SSH (vers le Wiki anglais)
[modifier] Liens externes
- ssh-keyinstall
- Keychain
- ssh_auth - Small script to setup RSA-identities
