Linux

CentOS 4.8

ssh-keygen(1)


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 −D reader

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.

ssh-keygen(1)