S'authentifier par clé (publique/privée) avec PuTTY sous Windows - Betaphile.net : Amoureux des versions Beta...

Betaphile.net : Amoureux des versions Beta...

Linux, Développement, Administration, Logiciels Libres ...

Aller au contenu - Aller au menu - Aller à la recherche



Je suis un fervent partisan du logiciel libre, et de Linux, cependant, mon environnement préféré reste pour le moment Windows XP sur lequel je suis la plupart du temps. Cependant, je gère mon petit serveur préféré Kiwi, et parfois quelques autres serveurs. J'y accède donc en ssh grâce à ce petit logiciel qu'est PuTTY ! Et voilà le dilemme : comment faire pour s'authentifier par un système de clé plutôt qu'avec un mot de passe avec PuTTY ?

Installation

Je vous conseille d'installer PuTTY grâce à la version installable disponible sur la page de téléchargement de PuTTY. Cette version va installer PuTTY bien sûr, mais aussi PuTTYGen et Pageant dont nous allons avoir besoin très bientôt.

Génération d'une paire de clés (privée/publique) avec PuTTYGen

On commence par lancer PuTTYGen, choisir le type de clé à générer (SSH-2 RSA est un bon choix), et la longueur de la clé (1024 bits est une valeur raisonnable, dans la mesure où elle n'est pas bruteforcable dans des temps humainement convenables ...). On clique ensuite sur le bouton Generate, et là, petit truc amusant, il faut faire bouger la souris dans la fenêtre de PuTTY Key Generator de façon aléatoire, et c'est ce mouvement aléatoire qui va servir à générer la clé. On se fait donc plaisir en bougeant le curseur dans tous les sens, tant qu'on reste dans la fenêtre qui va bien.

Génération de la paire de clés (privée / pubique) avec PuTTYGen

Une fois la clé générée , on doit arriver à quelque chose ressemblant à ça :

Clés générées avec PuTTYGen

On commence par remplir le champ passphrase afin d'avoir encore un peu de plus de sécurité. Ainsi, même si quelqu'un avait accès à notre clé privée, il lui faudrait le mot de passe pour s'en servir. On peut maintenant sauvegarder la clé publique et la clé privée; pour la clé publique on peut lui affecter l'extension que l'on veut, mais on prend généralement .pub, et on peut largement diffuser cette clé, alors que pour la clé privée, ce sera l'extension .ppk, et cette clé DOIT rester confidentielle. Attention : laissez ouvert votre PuTTYGen ouvert, afin d'avoir la clé à copier/coller sous la main.

Ajout de notre clé dans Pageant

On va maintenant lancer Pageant (si vous êtes un gros utilisateur de PuTTY, je vous conseille de le mettre dans vos logiciels au démarrage, il prend à peine 4Mo de RAM ...), qui place une petite icône de terminal avec un chapeau, dans la barre des tâches. Clic droit sur cette icône, Add Key, et on lui fournit notre clé privée, c'est à dire celle en .ppk. Par sécurité, il faut entrer à nouveau notre passphrase.

Enregistrement d'une session dans Pageant

On va maintenant ajouter la configuration d'une session vers un serveur dans pageant. Pour cela, clic droit sur Pageant, puis New Session. On renseigne les champs qui nous intéressent, pour ma part je renseigne le hostname, l'encodage des caractères dans Window > Translation (puisque la plupart des serveurs sur lesquels je me connecte sont en UTF-8 alors que PuTTY est en ISO par défaut), etc. Pour gagner encore un peu de temps lors de chaque connexion, on peut rentrer notre nom d'utilisateur dans Connection > Data, au champ auto-login username.

Sélection de notre clé privée en .ppk

On peut maintenant retourner dans Session, enregistrer notre session sous le nom que l'on veut, et, enfin, ouvrir la connexion en cliquant sur Open.

Ajout de la clé publique sur le serveur Linux

La première connexion au serveur se déroule comme d'habitude, il faut rentrer notre mot de passe. Une fois cette tâche effectuée, on va éditer le fichier ~/.ssh/authorized_keys, et on va copier/coller notre clé publique dans ce fichier (n'hésitez pas à créer le répertoire et le fichier s'ils n'existent pas). On retourne sur la fenêtre de PuTTYGen, et on copie/colle la clé. Si jamais vous aviez fermé bêtement la fenêtre de PuTTYGen, vous pouvez rouvrir le logiciel, et charger votre clé privée grâce au bouton load. Il faut respecter simplement le fait de placer une seule clé par ligne dans le fichier ~/.ssh/authorized_keys.

C'est maintenant le moment crucial : on va quitter notre session avec un petit Ctrl + D, puis essayer de se relogguer avec Pageant :

Choix de la session à ouvrir dans PuTTY

Yattaah, ca marche ! Tout du moins, je l'espère pour vous ...

Trackbacks

Les trackbacks pour ce billet sont fermés.

Commentaires

Le lundi 10 mars 2008 à 09:28, DeFr a écrit :

Un truc pas très connu pour une raison qui m'échappe complètement, c'est qu'il est possible de spécifier très simplement le nom d'utilisateur à utiliser pour la connexion en utilisant username@host dans le champ hostname.

Du coup, personnellement j'utilise très peu (lire: pas du tout) les sessions sur Putty. Je me contente de mettre le charset à UTF-8 par défaut, d'inclure Putty dans mon PATH, et du coup pour ouvrir une nouvelle session je me contente de faire Démarrer->Executer... (raccourci: Windows + R), puis de taper putty defr@abcd, en ayant préalablement chargé ma clé dans PageAnt :-)

Le lundi 10 mars 2008 à 15:32, KissCoolMan a répondu :

J'ai modifié mon article en prenant en compte tes remarques, et modifié ton commentaire afin de faire apparaître uniquement le "plus" que tu apportes à cet article :-) ! Merci encore pour ces précisions.

Le lundi 10 mars 2008 à 09:31, DeFr a écrit :

Ah, et j'oubliais: tout ça, c'est evidement bien plus simple si on est sous Linux :-P J'vais p'tet faire l'équivalent juste pour rendre la comparaison plus aisé ;-)

note de KissCoolMan : cf le trackback un peu plus haut.

Le dimanche 16 mars 2008 à 10:33, Geoffrey Dorne a écrit :

Vraiment très propre et très lisible ton blog, 20/20 et j'y reviendrai ! :-)

Le dimanche 16 mars 2008 à 13:15, KissCoolMan a répondu :

Merci, ca fait plaisir un commentaire de ce genre !

Le mardi 18 mars 2008 à 10:21, rberthou a écrit :

Cela est toujours très intéressant au niveau de la sécurité. J'ajouterai qu'il est également souhaitable de désactiver les connexions "root" sur les poste externes et d'interdire les comptes avec mot de passe ( cela force l'utilisation des clefs ).

Un autre gros plus de putty (et de ssh en général) est l'utilisation des tunnels.

Le mardi 18 mars 2008 à 12:27, KissCoolMan a répondu :

Effectivement pour la désactivation des connexions sur le compte root, mais je parlerai de ça dans un futur article sur la sécurisation des serveurs sous Unix/Linux ;-) !

Le mercredi 19 mars 2008 à 11:22, Christophe a écrit :

Très clean et très clair, moi aussi j'y reviendrai ;) !

Le jeudi 29 mai 2008 à 14:09, Snoz a écrit :

Évidemment n'utilisez pas de clés générées sous Debian ou Ubuntu...

Le jeudi 29 mai 2008 à 14:11, KissCoolMan a répondu :

Merci Snoz pour ce troll, on te rappellera quand on aura besoin de Toi.

Ajouter un commentaire