Publié dans Linux le 16 septembre 2005 | sans commentaire

Pour une utilisation des clés publiques avec SSH. Utilisation avec OpenSSH ou Putty.

Générer les clés publiques et privées

Il faut lancer « puttygen » qui est le générateur de clé de Putty pour générer une clé SSH2 DSA.

Il faut maintenant cliquer sur le bouton « Generate » et bouger la souris pour produire des données aléatoires qui permettront de générer les clés.

Vous pouvez définir un mot de passe (ou plutôt une phrase) pour protéger vos clés. Si vous ne donnez pas de mot passe, n’importe qui pourra utiliser vos clés et se connecter à votre compte. La valeur « Key Comment » sera affichée juste avant de saisir votre mot de passe.

Sauvegardez votre clé privée et donnez-lui un nom de fichier en ".ppk".

Vous pouvez aussi sauvegarder votre clé publique, mais ceci n’est pas obligatoire.

Sous Unix, vous pouvez utiliser la commande ssh-keygen :

ssh-keygen -t dsa -b 2048 -f ~/.ssh/keyfile -C comment

Avec la commande ssh-keygen, seul l’option -t est importante.

Note : Vous pouvez extraire une clé publique à partir de la clé privée avec la commande ssh-keygen -y -f private_key_file

Par défaut, les clés seront stockées dans le répertoire /.ssh. La clé publique dans le fichier id_dsa.pub et la clé privée dans id_dsa.

Déposer la clé publique sur le serveur

Utilisez PuTTY pour vous connecter à votre serveur. Assurez-vous d’être dans votre répertoire personnel et créez un répertoire « .ssh » (si ce n’est déjà fait…).

Entrez dans le répertoire .ssh et créez le fichier « authorized_keys« .

Dans PuTTYgen, sélectionnez le contenu de la boîte « public key » et copiez-le dans le presse-papiers.

Dans putty, éditez le fichier « authorized_keys » et collez le contenu du presse-papiers en cliquant sur le bouton droit de la souris. La ligne doit commencer par « ssh-dss » et se terminer par la valeur que vous avez mise dans le champ « Key Comment » lorsque vous avez généré la paire de clés.

Vous pouvez maintenant sauvegarder le fichier « authorized_keys » et fermer PuTTYgen.

Ajuster les permissions du fichier

SSH ne fonctionnera pas si le fichier « authorized_keys » ne possède pas les bons droits : personne, à part vous, ne doit pouvoir modifier votre fichier.

Pour cela, lancez la commande suivante :

chmod go-w ~ ~/.ssh ~/.ssh/authorized_keys

Vous pouvez maintenant fermer PuTTY.

Faciliter la connexion

Il est fastidieux de devoir taper tout le temps son mot de passe. Le programme « pageant » livré dans la suite PuTTY permet de conserver temporairement votre mot de passe en mémoire. Lors du démarrage, « pageant » place une icône dans le system tray.

Double cliquez sur cette icône et cliquez sur l’icône « Add Key » dans la fenêtre qui vient de s’ouvrir. Selectionnez le fichier .ppk que vous avez créé dans les étapes précédentes. Vous allez devoir taper le mot de passe qui protège votre clé. Tant que pageant est en mémoire, vous n’aurez plus à taper cette clé.

Vous pouvez maintenant fermer la fenêtre sans arrêter pageant.

Pour Unix, il faudra utiliser ssh-agent. Il sera actif pour les processus fils. Par exemple, pour lancer le serveur X Window :

ssh-agent startx

pour lancer un shell :

exec ssh-agent $SHELL

Une fois lancé, il faudra ajouter les clés avec ssh-add. Par défaut, il charge les fichiers /.ssh/id_rsa, /.ssh/id_dsa et /.ssh/identity. Sinon, il suffit de lui donner le chemin de la clé en paramètre.

Copier la clé publique vers une machine Unix

ssh-copy-id -i keyfile user@host

L’option -i n’est pas obligatoire. Par défaut, le fichier ~/.ssh/identity.pub sera utilisé. Mais si la commande ssh-add -L affiche une clé, alors ce sera cette clé qui sera utilisée de préférence.

Les permissions des répertoires ~/.ssh et ~/.ssh/authorized_keys de l’ordinateur distant seront modifiés.

Tester que tout cela fonctionne bien

Connectez-vous au serveur avec PuTTY. Le programme vous invite à saisir votre identifiant. Mais si tout ce passe bien, il ne devrait pas vous demander votre mot de passe : PuTTY va utiliser la clé stockée dans « pageant ».

Si PuTTY vous demande votre mot de passe, c’est que ça ne fonctionne pas. Vérifier les points suivants :

  • Vérifiez les permissions données à votre répertoire personnel et au répertoire « .ssh » ainsi qu’a votre fichier authorized_keys. Personne ne doit pouvoir les modifier à part vous.
  • Vérifiez que la clé publique est entièrement copiée dans le fichier « authorized_keys ». Elle doit commencer par « ssh-dss » et se terminer par la valeur du champ « Key Comment » que vous avez renseigné lors de la génération de la paire de clés.
    ATTENTION : une clé doit être stockée sur une seule ligne.
  • Vérifiez que « pageant » est lancé et que votre clé est chargée.

Bonne connexion !!

Votre commentaire

XHTML: Vous pouvez utiliser ces éléments : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*