NOM¶
ssh-keygen
—
génération, gestion et conversion de clef
d'authentification
SYNOPSIS¶
ssh-keygen |
[-q ] [-b
bits] -t
type [-N
new_passphrase] [-C
comment] [-f
output_keyfile] |
ssh-keygen |
-p [-P
old_passphrase] [-N
new_passphrase] [-f
keyfile] |
ssh-keygen |
-i [-f
input_keyfile] |
ssh-keygen |
-e [-f
input_keyfile] |
ssh-keygen |
-y [-f
input_keyfile] |
ssh-keygen |
-c [-P
passphrase] [-C
comment] [-f
keyfile] |
ssh-keygen |
-l [-f
input_keyfile] |
ssh-keygen |
-B [-f
input_keyfile] |
ssh-keygen |
-U reader
[-f input_keyfile] |
DESCRIPTION¶
ssh-keygen
génère,
gère et convertit des clefs d'authentification pour
ssh(1). ssh-keygen
permet de
créer des clefs RSA à utiliser avec la version 1 du protocole
SSH, et des clefs RSA ou DSA à utiliser avec la version 2 du
protocole SSH. Le type de clef à générer est
spécifié à l'aide de l'option
-t
.
En général, chaque utilisateur souhaitant utiliser
SSH avec une authentification RSA ou DSA lance ce programme une fois pour
générer la clef d'authentification dans
$HOME/.ssh/identity,
$HOME/.ssh/id_dsa ou
$HOME/.ssh/id_rsa. Eventuellement, l'administrateur
système peut utiliser ce programme pour générer des
clefs d'hôte, comme dans /etc/rc.
Normalement, ce programme génère la clef et demande
un nom de fichier pour stocker la clef privée. La clef publique est
stockée dans un fichier qui porte le même nom plus une
extension « .pub ». Le programme demande aussi
un mot de passe (passphrase). Le mot de passe peut être vide, ce qui
équivaut une absence de mot de passe (les clefs d'hôte doivent
avoir un mot de passe vide), ou une chaîne de caractère de
longueur arbitraire. Le mot de passe pour ssh (passphrase) est semblable
à un mot de passe, mais peut être une phrase avec des mots,
des caractères de ponctuation, des chiffres, des espaces ou n'importe
quelle chaîne de caractères. Les bons mots de passe font en
général 10 à 30 caractères de long, et ne sont
pas des phrases simples ou faciles à deviner (pour information, la
prose anglaise a seulement un à deux bits d'entropie par
caractère et fournit de mauvais mots de passe), et contient un
mélange de majuscules, minuscules, chiffres et caractères non
alphanumériques. On peut changer le mot de passe (passphrase) d'une
clef à l'aide de l'option -p
.
Il n'y a aucun moyen de retrouver un mot de passe
égaré. Si on perd un mot de passe, il faut
générer une nouvelle clef et la copier dans les clefs
publiques correspondantes des autres machines.
Pour les clefs RSA1, il y a en plus un champ de commentaires dans
le fichier de clef. C'est un moyen pratique dont dispose l'utilisateur, pour
identifier la clef. On peut se servir de ce commentaire pour décrire
le but ou l'utilité de la clef. Le commentaire est initialisé
à « user@host » lors de la
création de la clef, mais peut être changé à
l'aide de l'option -c
.
Après la génération d'une clef, quelques
instructions sont affichées, qui détaillent la manière
d'activer les clefs.
Les options sont les suivantes :
-b
bits
- Spécifie le nombre de bits de la clef à créer. Le
minimum est 512 bits. En général, on considère
qu'une longueur de 1024 bits est suffisante, et des longueurs de
clefs supérieures n'améliorent pas la sécurité
mais ralentissent le tout. Par défaut 1024.
-c
- Permet de changer le commentaire des clefs publiques et privées. Ne
fonctionne qu'avec les clefs RSA1. Le programme demande le fichier
contenant la clef privée, le mot de passe (passphrase) si la clef
en a un, et le nouveau commentaire.
-e
- Cette option lit un fichier de clef publique ou privée OpenSSH et
affiche la clef dans un format « SECSH Public Key File
Format » sur la sortie standard, pour une utilisation avec
plusieurs implémentations commerciales de SSH.
-f
filename
- Précise le nom du fichier de clef.
-i
- Cette option lit un fichier de clef privée (ou publique) non
crypté dans un format compatible SSH2, et affiche une clef
privée (ou publique) compatible OpenSSH sur la sortie standard.
ssh-keygen
peut aussi lire les clefs au format
« SECSH Public Key File Format ». Cette option
permet d'importer des clefs depuis plusieurs implémentations
commerciales de SSH.
-l
- Affiche les empreintes du fichier de clef publique spécifié.
Les clefs privées RSA1 sont supportées également.
Pour les clefs RSA et DSA,
ssh-keygen
essaie de
trouver le fichier de clef publique correspondant, et affiche son
empreinte.
-p
- Demande le changement d'un mot de passe (passphrase) au lieu de
créer une nouvelle clef privée. Le programme demande le nom
du fichier contenant la clef privée, l'ancien mot de passe
(passphrase), puis deux fois le nouveau mot de passe (passphrase).
-q
- Rend
ssh-keygen
silencieux. Utilisé par
/etc/rc lors de la création d'une nouvelle
clef.
-y
- Cette option lit un fichier de clef privée au format OpenSSH, et
affiche une clef publiqye OpenSSH sur la sortie standard.
-t
type
- Précise le type de clef à créer. Les valeurs
possibles sont « rsa1 » pour la version 1 du
protocole et « rsa » ou
« dsa » pour la version 2 du protocole.
-B
- Affiche le résumé en babil du fichier de clef privée
ou publique spécifié.
-C
comment
- Fournit le nouveau commentaire.
-D
reader
- Charge la clef publique RSA depuis le lecteur de carte à puces
reader.
-N
new_passphrase
- Fournit le nouveau mot de passe (passphrase).
-P
passphrase
- Fournit le mot de passe (passphrase) (ancien).
-U
reader
- Charge une clef privée RSA existante vers le lecteur de carte
à puces reader.
FICHIERS¶
- $HOME/.ssh/identity
- Contient l'identité d'authentification RSA de l'utilisateur pour la
version 1 du protocole. Ce fichier ne doit être lisible que par
l'utilisateur. On peut préciser un mot de passe (passphrase) lors
de la génération de la clef. Ce mot de passe est
utilisé pour crypter la partie privée de ce fichier à
l'aide de 3DES.
ssh-keygen
n'accède pas
automatiquement à ce fichier, mais c'est le fichier par
défaut pour la clef privée. ssh(1) lit ce
fichier lors d'une tentative de connexion.
- $HOME/.ssh/identity.pub
- Contient la clef publique RSA pour la version 1 du protocole
utilisée pour l'authentification. Il faut ajouter le contenu de ce
fichier à $HOME/.ssh/authorized_keys sur
toutes les machines sur lesquelles l'utilisateur souhaite se connecter
avec une authentification RSA. Il n'est pas nécessaire de garder
secret le contenu de ce fichier.
- $HOME/.ssh/id_dsa
- Contient l'identité d'authentification DSA de l'utilisateur pour la
version 2 du protocole. Ce fichier ne doit être lisible que par
l'utilisateur. On peut préciser un mot de passe (passphrase) lors
de la génération de la clef. Ce mot de passe est
utilisé pour crypter la partie privée de ce fichier à
l'aide de 3DES.
ssh-keygen
n'accède pas
automatiquement à ce fichier, mais c'est le fichier par
défaut pour la clef privée. ssh(1) lit ce
fichier lors d'une tentative de connexion.
- $HOME/.ssh/id_dsa.pub
- Contient la clef publique DSA pour la version 2 du protocole
utilisée pour l'authentification. Il faut ajouter le contenu de ce
fichier à $HOME/.ssh/authorized_keys sur
toutes les machines sur lesquelles l'utilisateur souhaite se connecter
avec une authentification RSA. Il n'est pas nécessaire de garder
secret le contenu de ce fichier.
- $HOME/.ssh/id_rsa
- Contient l'identité d'authentification RSA de l'utilisateur pour la
version 2 du protocole. Ce fichier ne doit être lisible que par
l'utilisateur. On peut préciser un mot de passe (passphrase) lors
de la génération de la clef. Ce mot de passe est
utilisé pour crypter la partie privée de ce fichier à
l'aide de 3DES.
ssh-keygen
n'accède pas
automatiquement à ce fichier, mais c'est le fichier par
défaut pour la clef privée. ssh(1) lit ce
fichier lors d'une tentative de connexion.
- $HOME/.ssh/id_rsa.pub
- Contient la clef publique DSA pour la version 2 du protocole
utilisée pour l'authentification. Il faut ajouter le contenu de ce
fichier à $HOME/.ssh/authorized_keys sur
toutes les machines sur lesquelles l'utilisateur souhaite se connecter
avec une authentification RSA. Il n'est pas nécessaire de garder
secret le contenu de ce fichier.
AUTEURS¶
OpenSSH est dérivé de la version originale et libre
ssh 1.2.12 par Tatu Ylonen. Aaron Campbell, Bob Beck, Markus Friedl, Niels
Provos, Theo de Raadt et Dug Song ont corrigé de nombreux bugs,
ré-ajouté des nouvelles fonctionnalité et
créé OpenSSH. Markus Friedl a contribué au support des
versions 1.5 et 2.0 du protocole SSH.
VOIR AUSSI¶
ssh(1), ssh-add(1),
ssh-agent(1), sshd(8)
J. Galbraith and
R. Thayer, SECSH Public Key File
Format,
draft-ietf-secsh-publickeyfile-01.txt,
March 2001, work in progress
material.