Précédent | Sommaire | Index | Suivant


Chapitre 9 : utilisation de Pageant pour l'authentification

Pageant est un agent d'authentification SSH, qui conserve vos clés privées en mémoire vive, sous forme décryptée, pour que vous puissiez vous authentifier souvent, sans avoir besoin de retaper votre phrase de passe à chaque fois.


9.1. Pour commencer à se servir de Pageant

Pour pouvoir utiliser Pageant, il vous faut une clé privée au format *.PPK. Si vous n'en avez pas encore, veuillez vous reporter au chapitre 8 pour savoir comment en générer une, et comment l'utiliser pour vous connecter à une machine distante de façon sécurisée.

Lorsque vous lancez Pageant, une icône apparaît dans la zone de notification, en bas à droite de l'écran, qui représente un ordinateur portant un chapeau. Le programme reste là sans rien faire jusqu'à que vous l'utilisiez pour charger une clé privée.

Si vous faites un clic droit sur l'icône de Pageant, un menu appraît. Choisissez la commande 'View Keys' ( voir les clés ) dans ce menu. La fenêtre principale de Pageant apparaît ( vous pouvez aussi faire un double-clic avec le bouton gauche, à la place, le résultat est le même ).

La fenêtre de Pageant contient une liste déroulante, qui affiche les clés privées que Pageant gère pour vous. Lorsque vous lancez Pageant, il ne détient aucune clé, et la liste est vide. Une fois que vous aurez ajouté une ou plusieurs clés, c'est ici qu'elles apparaîtront.

Pour ajouter une clé dans Pageant, cliquez sur le bouton 'Add Key'. Pageant affiche une boîte de dialogue d'ouverture de fichier intitulée 'Select Private Key File'. Utilisez cette boîte de dialogue pour localiser votre fichier de clé privée, et cliquez sur 'Open'.

Pageant charge alors la clé privée. Si elle est protégée par une phrase de passe, Pageant vous demande de taper cette phrase de passe. Une fois que la clé est chargée, elle apparaît dans la liste des clés, dans la fenêtre de Pageant.

Lancez maintenant PuTTY et connectez-vous par SSH à un site qui accepte votre clé. PuTTY va s'apercevoir que Pageant est en cours d'exécution, il va récupérer automatiquement la clé auprès de Pageant, et il va l'utiliser pour vous authentifier. Vous pouvez dès lors ouvrir autant de sessions PuTTY que vous le souhaitez, sans avoir à retaper votre phrase de passe.

Il est possible de configuer PuTTY pour qu'il n'utilise pas Pageant, mais c'est ce qu'il fait par défaut. Veuillez vous reporter à la section 4.20.2 et à la section 3.8.3.9 pour plus d'informations à ce sujet.

Pour arrêter Pageant, faites un clic droit sur son icône, dans la zone de notification en bas à droite de l'écran, et choisissez 'Exit' dans le menu. Il est à noter que le fait de fermer la fenêtre principale de Pageant n'arrête pas le programme.


9.2. La fenêtre principale de Pageant

La fenêtre principale de Pageant apparaît à l'écran lorsque vous faites un double-clic avec le bouton gauche sur l'icône de Pageant dans la zone de notification, en bas à droite, à côté de l'horloge, ou si vous faites un clic droit sur cette même icône et que vous choisissez 'View Keys' dans le menu contextuel. Vous pouvez vous servir de cette fenêtre principale pour garder trace des clés qui sont chargées en mémoire à un instant donné, pour en ajouter de nouvelles ou pour en enlever ( cela les décharge de la mémoire, sans supprimer quoi que ce soit sur le disque dur, bien entendu ).


9.2.1. La liste déroulante des clés

La liste déroulante qui occupe la quasi-totalité de la fenêtre principale de Pageant recence les clés privées actuellement chargées dans Pageant. Cette liste pourrait par exemple ressembler à ceci :

ssh1    1024 22:c3:68:3b:09:41:36:c3:39:83:91:ae:71:b2:0f:04 k1
ssh-rsa 1023 74:63:08:82:95:75:e1:7c:33:31:bb:cb:00:c0:89:8b k2

Pour chacune des clés, la liste vous indique :


9.2.2. Le bouton 'Add Key' ( ajouter une clé )

Pour ajouter une clé dans Pageant en la prenant dans un fichier local, cliquez sur le bouton 'Add Key' dans la fenêtre principale de Pageant, ou alors faites un clic droit sur l'icône Pageant dans la zone de notification système, et choisissez 'Add Key' dans le menu.

Pageant affiche une boîte de dialogue d'ouverture de fichier intitulée 'Select Private Key File'. Utilisez cette boîte de dialogue pour localiser votre fichier de clé privée. Si vous voulez ajouter plus d'une clé à la fois, c'est possible : il suffit de sélectionner les différents fichiers de clés en cliquant dessus tout en maintenant la touche Maj enfoncée ( pour sélectionner des fichiers adjacents ) ou la touche Ctrl ( pour sélectionner des fichiers non adjacents ).

Pageant charge alors la ( ou les ) clé(s) privée(s). Si elle est protégée par une phrase de passe, Pageant vous demande de taper cette phrase de passe.

Ce n'est pas la seule façon de faire pour ajouter une clé privée dans Pageant. Vous pouvez aussi en ajouter une qui se trouve sur une autre machine, grâce au système du transfert d'agent. Veuillez vous reporter à la section 9.4 pour plus d'informations à ce sujet.


9.2.3. Le bouton 'Remove Key' ( retirer la clé )

Si vous souhaitez que Pageant cesse d'utiliser une clé pour vous authentifier auprès des machines distantes, il vous suffit de sélectionner cette clé dans la liste et de cliquer sur le bouton 'Remove Key'. Pageant déchargera cette clé de son espace mémoire.

Vous pouvez faire cela avec les clés que vous avez chargées en cliquant sur le bouton 'Add Key' ( [NdT] ou que vous avez chargées depuis la ligne de commande, cf. section 9.3.1, ci-dessous ), mais vous pouvez aussi le faire avec les clés que vous avez ajoutées à distance, grâce au système de transfert d'agent, cela ne fait aucune différence ( pour plus d'informations au sujet du transfert d'agent, veuillez vous reporter à la section 9.4, ci-dessous ).


9.3. La ligne de commande de Pageant

Pageant peut être configué de façon à faire un certain nombre de choses automatiquement lorsqu'il se lance. Il suffit pour cela de lui indiquer quoi faire en ligne de commande. Si vous démarrez Pageant à partir de l'interface utilisateur graphique de Windows, il vous suffit de modifier les propriétés du raccourci Windows qui vous sert à lancer Pageant.

Si Pageant est déjà en cours d'exécution, le fait de relancer la commande avec les options ci-dessous impacte l'instance actuelle de Pageant ( cela n'en lance pas une nouvelle ).


9.3.1. Faire en sorte que Pageant charge automatiquement des clés au démarrage

Pageant peut charger automatiquement une ou plusieurs clés privées en mémoire lorsqu'il se lance, si vous les lui passez en paramètre. La ligne de commande utilisée pour lancer Pageant pourrait par exemple ressembler à ceci :

C:\PuTTY\pageant.exe d:\ma_premiere_clé.ppk d:\ma_deuxième_clé.ppk

Si les clés sont stockées sur le disque sous forme cryptée, Pageant vous demandera bien sûr de saisir au clavier les phrases de passe correspondantes au démarrage.

Si Pageant est déjà en cours d'exécution, cette commande a pour effet de charger les clés indiquées dans l'instance actuelle de Pageant ( cela n'en démarre pas une autre ).


9.3.2. Faire en sorte que Pageant lance un autre programme

Vous pouvez faire en sorte que Pageant démarre un autre programme une fois qu'il a fini de s'initialiser lui-même, et qu'il a chargé les clés qu'on lui a demandé de charger ( d:\main.ppk, dans l'exemple ci-dessous ). Ce programme ( ce peut être PuTTY, WinCVS qui fait appel à Plink, ou n'importe quoi d'autre ) sera alors en mesure d'utiliser les clés que Pageant a chargées en mémoire.

Pour ce faire, il vous suffit d'indiquer le nom du programme que vous voulez lancer, précédé de l'option -c, comme ceci :

C:\PuTTY\pageant.exe d:\main.ppk -c C:\PuTTY\putty.exe


9.4. Utilisation du transfert d'agent ( "agent forwarding" )

Le transfert d'agent est un mécanisme qui permet aux applications fonctionnant sur le serveur SSH, donc sur la machine distante, de s'adresser à l'agent lancé sur la machine cliente ( votre PC ).

Veuillez notez que pour l'instant, le transfert d'agent de SSH-2 n'est utilisable que si le serveur SSH qui tourne sur la machine distante est OpenSSH. Le serveur SSH de ssh.com utilise un protocole agent différent, que PuTTY ne gère pas encore.

Pour activer le transfert d'agent, commencez par lancer Pageant. Ensuite, configurez une session PuTTY, en SSH, dans laquelle vous activerez 'Allow agent forwarding' ( pour plus de détails à ce sujet, veuillez vous reporter à la section 4.20.5 ). Ouvrez la session comme vous le feriez normalement ( vous pouvez aussi utiliser l'option -A, en ligne de commande, cf. section 3.8.3.10 ).

Si cela fonctionne correctement, alors les applications tournant sur la machine distante devraient maintenant pouvoir accéder à un socket Unix que le serveur SSH va renvoyer vers PuTTY, et que PuTTY va renvoyer à son tour vers l'agent. Pour vérifier que c'est bien ce qui se passe, si la machine distante tourne sous Unix, vous pouvez essayer de lancer cette commande dessus :

machine_unix:~$ echo $SSH_AUTH_SOCK
/tmp/ssh-XXNP18Jz/agent.28794
machine_unix:~$

Si cela renvoie une ligne vide, c'est que le transfert d'agent n'a pas été activé du tout.

Supposons que cela fonctionne correctement : si maintenant, vous lancez la commande ssh sur la machine distante, et que vous vous en servez pour vous connecter en cascade à une troisième machine qui accepte l'une des clés stockées dans Pageant, alors vous devriez pouvoir ouvrir une session sur cette troisième machine sans taper de mot de passe :

machine_unix:~$ ssh -v autre_machine_unix
[...]
debug: next auth method to try is publickey
debug: userauth_pubkey_agent: trying agent key my-putty-key
debug: ssh-userauth2 successful: method publickey
[...]

Si vous activez aussi le transfert d'agent sur cette connexion SSH ( veuillez vous reporter au manuel du client SSH qui est installé sur la machine distante pour savoir comment faire ), vos clés d'authentification seront encore disponibles sur la prochaine machine à laquelle vous vous connecterez - à deux connexions SSH de distance par rapport à votre PC local, sur lequel elles sont effectivement stockées.

De plus, si vous avez une clé privée installée sur l'un des serveurs SSH ( autrement dit sur l'une des machines auxquelles vous vous connectez par ce biais ), alors vous pouvez la renvoyer jusqu'à Pageant ( donc lui faire faire tout le même chemin en sens inverse ), grâce à la commande locale ssh-add :

machine_unix:~$ ssh-add ~/.ssh/id_rsa
Need passphrase for /home/fred/.ssh/id_rsa
Enter passphrase for /home/fred/.ssh/id_rsa:
Identity added: /home/fred/.ssh/id_rsa (/home/simon/.ssh/id_rsa)
machine_unix:~$

Elle sera alors accessible à toute machine qui dispose du transfert d'agent ( pas uniquement celles situées en aval de l'endroit où vous l'avez ajoutée ).


9.5. Considérations liées à la sécurité

Le fait d'utiliser Pageant dans le cadre d'un système d'authentification par clé privée a cela de pratique que cela vous permet d'ouvrir plusieurs sessions SSH sans avoir à resaisir une phrase de passe à chaque fois, et cela présente l'avantage, au niveau sécurité, que les clés privées ne sont jamais écrites en clair sur le disque. De nombreuses personnes estiment que c'est un bon compromis entre sécurité et facilité d'utilisation.

Cela dit, c'est un compromis. Garder vos clés privées, sous forme décryptée, dans l'espace mémoire alloué à Pageant, cela vaut mieux que de les écrire en clair sur le disque dur, dans des fichiers faciles à trouver, mais c'est tout de même moins sûr que de ne pas les stocker du tout, et cela pour deux raisons :

De la même manière, l'utilisation du transfert d'agent constitue un progrès en matière de sécurité par rapport à d'autres méthodes d'authentification, mais ce n'est encore pas la perfection. Le fait de garder vos clés dans Pageant, sur votre machine Windows, présente un avantage, question sécurité, par rapport au fait de les garder sur la machine distante elle-même ( que ce soit dans un agent, ou en clair sur le disque ), parce que si jamais la machine distante voit passer votre clé privée en clair, non cryptée, alors l'administrateur système, ou le premier pirate venu qui réussit à s'introduire dans la machine, peut dérober ces clés et les utiliser pour se faire passer pour vous, aussi longtemps qu'ils le veulent.

Toutefois, l'admin système de la machine distante peut toujours se faire passer pour vous sur cette machine. Donc si vous transférez votre agent vers la machine distante, alors l'admin système de cette machine peut accéder à la connexion d'agent transféré, et il peut obtenir des signatures à partir de vos clés privées. Donc il peut ouvrir des sessions sur d'autres machines en se faisant passer pour vous. Il ne peut toutefois le faire que dans certaines limites, puisque quand le transfert d'agent est interrompu, l'admin indélicat perd la possibilité de se faire ainsi passer pour vous, mais ce n'est pas le fait d'utiliser Pageant qui va vraiment empêcher l'administrateur système ( ou un pirate qui a réussi à prendre la main sur la machine distante ) de jouer à ce petit jeu.

Moralité : si vous n'avez pas confiance en l'admin système d'une machine à laquelle vous êtes susceptible de vous connecter en SSH, alors n'utilisez jamais le transfert d'agent en direction de cette machine ( bien entendu, ne stockez pas non plus de clés privées sur cette machine, n'y tapez pas de phrases de passe, et ne vous connectez pas à d'autres machines à partir de celle-ci, d'aucune façon que ce soit ( ce n'est pas une spécificité de Pageant, mais bel et bien une mesure de prudence élémentaire ).


Si vous souhaitez faire part aux auteurs de PuTTY de votre avis sur ce manuel, ou sur les outils PuTTY eux-mêmes, veuillez vous reporter à la page "Feedback" ( merci de leur écrire exclusivement en anglais ). Si vos remarques portent sur la traduction, merci de vous adresser directement au  traducteur, et non à l'équipe de développement.

[PuTTY release 0.60]

Valid HTML 4.01 Strict