Automatiser ses connexions SSH avec PuTTY

Le par Raymond K.  |  5 commentaire(s)
Article n° 93 - Automatiser vos connexions SSH avec PuTTY (120*120)

Se connecter automatiquement à un système de type Unix ou même un routeur, sans avoir à taper de login et mot de passe, en toute sécurité (SSH), c'est ce que bon nombre d'administrateurs systèmes recherchent. Ce souhait peut être exaucé à l'aide du célèbre utilitaire PuTTY que nous vous présentons ici dans le détail.

Introduction

Le but de ce dossier est d’aider les utilisateurs qui, comme moi, sont fatigués de devoir taper leur mot de passe à chaque fois qu’ils veulent se connecter à un système du type Unix ou à leur routeur réseau. En particulier les fous de la sécurité dont je fais parti et qui ne dialoguent qu’en SSH (Secure Shell).

J'en profiterai également pour vous présenter brievement PuTTY, qui est un petit utilitaire fort sympathique et qui plus est gratuit.

En bref, Putty permet des connexions à tout type de système acceptant les protocoles suivants :
  • Telnet
  • SSH
  • rlogin, rsh
  • raw

Il est téléchargeable gratuitement à partir de ce site :
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

Deux modes de téléchargement sont disponibles, "Installer" et "Zip". Dans ce dossier, c'est le mode "Installer" qui a été choisi. Télécharger cette version et dérouler l'installation avec les options par défaut.


Sur cette page de téléchargement, vous remarquerez qu'il y a aussi tout le nécessaire pour faire du FTP en mode sécurisé grâce à sftp, le tout en passant par un service (daemon) de type ssh. Ce n'est pas le port standard du protocole FTP qui est utilisé, ce qui veut dire qu'il n'y a pas besoin d'avoir un serveur FTP non plus. Il y a même de quoi faire de la copie de fichiers entre un serveur Windows et un serveur Unix, aussi en mode sécurisé. Bref, il y a de quoi faire.

Le cas que nous allons étudier dans ce tutorial concerne Putty en mode SSH, le tout avec la déclaration de certificat pour pouvoir se connecter à un serveur en ne tapant son mot de passe qu’une seule fois dans la journée. Le serveur sur lequel nous allons nous connecter est un serveur Unix avec OpenSSH  d'activé dessus.

../..


Génération de la clé de sécurité

La clé de sécurité : le nerf de la guerre


Une fois le programme Putty installé, nous pouvons nous atteler à la création de la clé de cryptage. Ceci nous permettra de nous authentifier lors de la connexion vers la majorité des systèmes utilisant le protocole SSH.

Il s'agit d'un mécanisme à deux clés, composé d'une clé appelée privée, que l’on conservera précieusement pour soi ,et d'une appelée publique que l’on peut diffuser allègrement (mail, ftp, etc.). Cette dernière est en relation directe avec la clé privée, ce qui forme un couple de clé indissociable.

Pour que la connexion s'établisse entre une machine A et une machine B, les deux parties doivent s'échanger leur clé publique. Dès qu'ils sont en possession de cette clé, ils l'utilisent pour crypter les données à envoyer,  et ne peuvent commencer à réellement dialoguer qu'à partir de ce moment.

Génération de la clé

Pour créer cette clé, il faut lancer l'utilitaire : PuTTYgen.
Il est disponible dans le menu Démarrer > Progammes > Putty > PuTTYgen.


Image


Les paramètres par défaut positionnent les valeurs les plus fréquemment utilisées. Il faut bien garder à l'esprit que Putty supporte les 3 principaux types de cryptage, à savoir :

  • SSH-1 (RSA) : le moins sécurisé de tous
  • SSH-2 (DSA)
  • SSH-2 (RSA) : le plus sécurisé de tous

La taille de la clé influence la complexité de cryptage. Il est estimé qu’une clé de 1024 bits n’est pas cassable dans des délais humainement raisonnables.

La génération de la clé commence en appuyant sur le bouton [Generate].

Image


C’est le moment de se défouler, en effet, il faut faire bouger la souris sur la fenêtre pour faire avancer la barre de progression. Le but du jeu, c’est de générer du hasard, n’hésitez pas à faire n’importe quoi ;-).

Et voici le résultat :

Image


../..


Personnaliser / Sauvegarder ses clés

Personnaliser ses clés de sécurité


Maintenant que nous sommes en possession de nos clés publique et privé, nous allons les personaliser pour pouvoir les reconnaître plus facilement.

Voici la description des différents champs présents dans la fenêtre :
  • Key comment
    éventuel commentaire de la clé, ce champ n'est pas capital. Par défaut la valeur est formatée de la manière suivante : type de clé"-key-"date, dans notre exemple : "zone de texte libre"

  • Key passphrase
    correspond au mot de passe permettant de protéger l'utilisation de la clé privée, ce champ doit être renseigné sinon inutile de parler de sécurité :-).

  • Confirm passphrase
    pour confirmer votre mot de passe.

Nous allons saisir un mot de passe pour restreindre l'utilisation des accès. Il peut contenir des espaces et tout un ensemble de caractères y compris les caractères spéciaux (exemple : &), d'où le mot anglais "passphrase".

Rappel : la règle de sécurité minimale à appliquer est d'éviter les citations, les mots du dictionnaire, et les mots usuels, exemple : Génération-NT ;-). Et bien sûr une longueur d’au moins 10 caractères est recommandée.

  • Parameters
    correspond aux paramètres à renseigner suivant vos critères de sécurité, à noter que plus le nombre de bits à générer est élevé, plus il faut de temps, 1024 bits étant une valeur correcte. C'est également ici que nous pouvons sélectionner le type de cryptage.


Voilà à quoi ressemble l’affichage une fois les valeurs renseignées :

Image



Sauvegarder ses clés

Il faut maintenant sauvegarder :
  • la clé privée (qui ne doit jamais être transmise)
  • la clé publique

Pour cela nous allons utiliser les boutons [Save public key] et [Save private key] correspondants. Il n’y a pas de contrainte sur l’emplacement de la sauvegarde mais il faudra s’en souvenir pour la suite. La seule contrainte concerne l’extension de la clé privée qui doit être .ppk. Quant à la clé publique elle peut s’appeler comme on le souhaite. Pour information, l’extension .pub est souvent utilisée.

Dans cet exemple, la clé privée s’appelle unpetitnom.ppk et la clé publique unpetitnom.pub.

Les clés sont maintenant sauvegardées à l'emplacement que vous aurez choisi.


Remarque :
Laisser l'utilitaire PuTTYgen ouvert, il sera de nouveau requis un peu plus loin.

../..


Pageant, outil de gestion de clé pour PuTTY (1/2)

Pageant, outil de gestion de clé pour PuTTY


La clé privée que nous venons de sauvegarder va nous servir pour nous authentifier automatiquement, mais pour celà nous avons besoin d'un utilitaire supplémentaire (fourni avec Putty).

Il s’agit de PuTTY Authentication Agent, encore appelé Pageant. Il sert à charger les clés de sécurité en mémoire. Il demande le mot de passe de la clé privée et conserve tout cela en mémoire. Aucune information n’est écrite sur disque. Par conséquent, à chaque lancement de Pageant, la liste des clés est vide.

J’en entends déjà dire :
"Grrrr !! J’ai 46 clés à saisir. Si je dois le faire à chaque fois, c’est pas génial..."

Heureusement, il y a un moyen de contourner cela, nous verrons comment faire un peu plus loin. Par contre, si vos clés ont un mot de passe, il vous faudra les saisir tous au moment du chargement des clés, sécurité oblige!

Un autre avantage de Pageant est qu’il permet d’accéder, par un simple clic droit, aux sessions déjà configurées et sauvegardées de PuTTY, voir capture ci-dessous :


Image



  • Lancement de Pageant

Il est disponible dans le menu Démarrer > Progammes > Putty > Pageant.

L’icône correspondante apparaît dans la barre des tâches (petit ordinateur avec un chapeau noir). En double-cliquant dessus, la fenêtre suivante s’ouvre :


Image
 

../..


Pageant, outil de gestion de clé pour PuTTY (2/2)

  • Chargement de la clé privée

Pour charger la clé, cliquer sur le bouton [Add Key] et sélectionner la clé privée en question (fichier avec extension en .ppk).

Image


Dans notre exemple on sélectionne donc la clé unpetitnom.ppk. Une fois qu’on clique sur [Ouvrir], il nous est automatiquement demandé de l'entrer par mesure de sécurité.

Image


Si le mot de passe est bon, voici le résultat :

Image




  • Automatiser l’enregistrement des clés privées

En fait l’automatisation de l’enregistrement des clés passe par la ligne de commande. Pour ma part, j’utilise un raccourci dans le menu Démarrer > Programmes > Démarrage. Ca me permet d’avoir Pageant de lancé dès l’ouverture de ma session.

La ligne de commande à mettre dans votre raccourci est la suivante :

D:\Program files\Putty\pageant.exe ma_cle1.ppk ma_cle2.ppk ...


Les clés sont à mettre les unes à la suite des autres.

../..


Création d'une connexion (1/2)

Configuration de PuTTY en SSH


A l’ouverture de Putty, il n’y a rien hormis Default settings qui sont les paramètres par défaut. Nous allons donc renseigner tous les champs nécessaires pour établir une connexion en SSH.


Création d’une connexion vers un serveur

Il faut remplir les champs :
  • Host Name (or IP address)
    saisir le nom ou l’adresse IP de l'équipement vers lequel vous souhaitez vous connecter.

  • Protocol
    choisir le protocole SSH en cliquant sur le bouton radio (Remarque : la valeur du Port est automatiquement mise à jour).

  • Saved Sessions
    permet de sauvegarder votre configuration. Ce champ est de type texte libre, il est donc possible de compléter le nom du serveur par un commentaire qui peut représenter son utilisation, voici un exemple :

Image


Ensuite, il est possible de paramétrer le titre de la fenêtre une fois celle-ci ouverte. Cela s’avère très utile dans un environnement Windows chargé pour retrouver ses petits et éviter la gaffe du "mauvais serveur" :

"Euh, qui c’est que j’ai rebooté '' Oups, c’est pas le bon...".

Il faut donc aller dans le menu Behaviour (voir ci-dessous) et remplir le champ Window title.

Image


Le but du jeu est d’automatiser au maximum la connexion. Nous allons donc donner un login par défaut via le menu Data et le champ Auto-login username. Attention si ce champ est rempli, il ne vous sera jamais posé la question du login, que celui-ci existe ou non sur le serveur. Si vous souhaitez pouvoir changer le login au moment de la connexion, il faut laisser ce champ vide.

Image


../..


Création d'une connexion (2/2)

Dans notre exemple, notre serveur n’accepte que des connexions en mode SSH version 2 (version la plus sûre). Nous sélectionnons donc 2 only dans le menu SSH.

Image


Enfin, vient le moment de saisir le chemin complet d’accès à notre clé privée, celle qui a été générée précédemment, dans le champ Private key file for authentication du menu Auth, voir ci-dessous :

Image


Pour sauvegarder le tout, il faut revenir au menu Session et cliquer sur le bouton [Save].

Image


../..


Première connexion

Connexion vers un équipement


Toujours dans Putty, l’ouverture de session s’effectue soit par un double clic sur le nom de la session sauvegardée, soit en cliquant sur le bouton [Open] après l’avoir sélectionnée.

Lors de première connexion en SSH, la question sur la mémorisation de la clé serveur est posée. L'équipement nous transmet sa clé publique pour que la communication cryptée s'établisse.


Image


  • Oui
    mémorise la clé publique dans la base de registre Windows.

  • Non
    autorise l’ouverture de la session, mais la question sera reposée à la prochaine connexion.

  • Annuler
    arrête l’ouverture de la session

Cette clé sert à garantir que le serveur (ou équipement) à l’autre bout de la ligne est le bon correspondant. Si une personne mal intentionnée essaie de se faire passer pour notre serveur, il aura forcément une autre clé et Putty nous le dira.

Que l'on choisisse Oui ou Non la session s'ouvre et comme l’automatisation n’est pas encore complète, il faut saisir son mot de passe.


Image


../..


Configurer la clé sur le serveur SSH

Transfert de la clé publique sur l'équipement


Maintenant que nous avons nos clés et nos sessions, nous allons pouvoir configurer la partie distante (équipement) pour automatiser l’authentification.

Pour celà il faut :
  • Copie du contenu de la clé publique
  • Création du répertoire .ssh sur l'équipement distant
  • configuration du fichier .ssh/authorized_keys


  • Copie du contenu de la clé publique

Nous avions laissé PuTTYgen ouvert pour gagner du temps, mais sachez qu'il y a toujours le moyen de recharger la clé privée via le bouton [Load]. En cas de rechargement de la clé, vous devrez saisir le mot de passe.

Pour pouvoir transférer le contenu de la clé publique, il faut sélectionner le texte qui se trouve dans le champ : Public key for pasting into OpenSSH authorized_keys file, voir capture ci-dessous :


Image
copier le contenu de la clé [CTRL] + [C]




  • Création du répertoire .ssh sur l'équipement distant

Dans votre session Putty, taper la commande suivante :

$ mkdir .ssh

Il se peut que le répertoire existe déjà et par conséquent il ne faut pas tenir compte si un message vous signale l’existence d’un tel répertoire. Ceci arrive si ce n'est pas votre toute première clé publique transférée.



  • Configuration du fichier .ssh/authorized_keys

Ce fichier contiendra toutes les clés publiques que vous souhaitez autoriser à se connecter sans mot de passe. Pour renseigner le fichier, il faut taper la commande suivante :

$ cat >> .ssh/authorized_keys
  • Coller le contenu de la clé précédemment copiée avec la combinaison de touches [SHIFT] + [Inser]
  • Fermer le fichier [Ctrl] + [D]

Le résultat ressemble a ceci :

$ cat >> .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIB0RV6eWQBLtz7q9J4kXxnVMlXEbBJpwUPf2i+kPU
8eJgdF1KJJ9043eilGG/nszvchaEZ4Uoe/m1gt6+5aK0fK6KyrAodkmGsoY6bGdIUAl3SOps+vN
tz0aefycpnj8BOxN74XBVzaBOQoff5QKiq1sNZvo08dsjrS+ztElP9Xhw== zone de text libre
$


Le moment de vérité approche. Il faut maintenant quitter la session Putty en tapant exit.

../..


Mise en application et Conclusion

Mise en application


La dernière étape consiste à relancer Putty et à réouvrir la session précédente. Normalement, la session doit s’ouvrir sans demander de mot de passe, comme montré ci-dessous :


Image


Voilà, c’est fini !


Si ce n’est pas le cas, l’erreur est sûrement survenue au moment du copier/coller dans la session Putty. Pour s’en assurer, il faut se connecter (en tapant son mot de passe) puis éditer le fichier : .ssh/authorized_keys avec votre éditeur préféré. La clé doit apparaître sur une seule ligne.




Conclusion :

En situation réelle nous avons mis en place ce procédé (utilisation de Putty, Pageant et PuTTYgen) dans une grande entreprise avec une centaine de serveurs et routeurs. Nous l'utilisons quotidiennement et ne plus avoir à saisir son login ainsi que son mot de passe des dizaines de fois est plus qu'appreciable pour nous autres les administrateurs feignants ;-)



  • Partager ce contenu :
Vos commentaires
Trier par : date / pertinence
djk offline Hors ligne Héroïque avatar 612 points
Le #169317
Salut,
Il manque un très puissant aspect de SSH, les tunnels. Trèèèès utile pour contourner presque n'importe quoi au boulot, lorsque le proxy est vilain.
J'avais écrit un truc sur le sujet y'a longtemps : http://jmichau.free.fr/ssh_au_boulot/
Anonyme
Le - Editer #169319
Tres bien fait !
a completer par le X11 forwarding aussi, important des que l'on se connecte a un systeme UNIX...
Rip offline Hors ligne Héroïque avatar 586 points
Le #169323
En passant, la seule regle pour avoir des bon mot de passe est de melanger les caratere speciaux aux lettres

Donc, Génération-NT
deviens G3n3r@ti0N-Nt

Par consequence, tous les mots du dictionnaire son bon

ex: Ordinateur --> 0Rdin@t3uR
SylverB offline Hors ligne Héroïque avatar 612 points
Le #169327
Vous avez oublié de parler des droits sur les fichiers !!! Si le fichier est dans /root/.ssh/authorized_keys, il faut faire un chmod 700 /root et un chmod 600 /root/.ssh/authorized_keys , sinon le serveur nous jette a l'authentification ...
asebt offline Hors ligne Héroïque avatar 702 points
Le #196344
Salut,

Si tu veux vraiment automatisé tes tache il existe un addon a putty extraputty ( http://extraputty.free.fr ).
Il te permet via un treeview de sauvegarder toutes tes commandes et de les envoyer sur un simple click de souris et tu peux meme faire des sequences de commandes.

En tout cas grace a cela je vais plus vite sur ma connexion ssh a taper des commandes interminable pour lire des infos de ma bdd.

De plus il y a une API pour donner l'acces a teststand et appli win 32 a tous les protocles de putty en emission et reception.
Voila http://extraputty.free.fr

Asebt.<img src="/img/emo/cool.gif" alt="8:" />
icone Suivre les commentaires
Poster un commentaire