Keychain/fr

Ce document décrit comment utiliser les clés partagées SSH avec le programme keychain. Il suppose que le lecteur a une connaissance de base de la cryptographie par clés publiques.

Le problème à résoudre
Ainsi vous disposez de cette merveilleuse machine Gentoo sur laquelle tourne, mais c'est un peu fatigant pour vous de continuer à taper tous ces mots de passe de connexion, n'est pas ? Ou peut-être avez vous un script ou une tâche de cron qui nécessite un moyen efficace d'utiliser une connexion ssh. Dans un cas comme dans l'autre, il y a une solution au problème, et elle commence avec l'authentification par clé publique.

Comment fonctionne l'authentification par clé publique ?
Supposons qu'un client veuille se connecter à sshd sur un serveur. Le client commence par générer une paire de clés et donne la clé publique au serveur. Par la suite, à chaque fois que le client essaye de se connecter, le serveur lui soumet un challenge qui est chiffré avec cette clé publique. Dans ce cas, seul le détenteur de la clé privée correspondante (le client) est capable de le déchiffrer, et vous l'aurez deviné, seul ce détenteur est à même de pouvoir donner la bonne réponse et réussir la connexion.

Générer une paire de clés
La première étape est de créer une paire de clés. Pour le faire, vous devez utiliser la commande   comme suit :

Contentez-vous d'accepter les valeurs par défaut, et assurer vous d'entrer une phrase de passe solide.

You should now have a private key in and a public key in. We are ready to copy the public key over to the remote host.

Préparation du serveur
We will be copying the file over to the server that runs sshd. We will also be adding it to the file that belongs the connecting user on that server. Here's an example of how to do that if you already have ssh access to the server.

La sortie correspondant à la dernière ligne devrait vous montrer le contenu du fichier. Vérifiez bien qu'elle est correcte.

Tester la configuration
En théorie, si tout c'est bien passé, et si le démon ssh sur le serveur le permet, vous devriez être en mesure d'avoir un accès ssh sur le serveur sans donner de mot de passe. Il est encore nécessaire de déchiffrer la clé privée sur le client avec la phrase de passe que vous avez définie précédemment, mais il ne faut pas confondre cela avec le mot de passe du compte utilisateur sur le serveur.

Hopefully, it asked you for your passphrase for id_rsa, and you were able to gain ssh access as server_user on the server. If not, login as server_user, and verify the contents of to make sure each entry is on a single line. You might also want to check the sshd configuration to make sure that it prefers to use public key authorization when available.

À ce stade, vous pensez probablement, ''De qui se moque-t-on ? J'ai simplement échangé un mot de passe contre un autre !'' Détendez-vous, la section suivante va vous expliquer comment utiliser tout ça de manière à économiser votre précieux temps.

Gestion typique des clés avec un agent ssh
Si vous avez suivi, vous pensez certainement que ce serait merveilleux si vous pouviez déchiffrer votre clé privé une seule fois, et obtenir la possibilité de vous connecter en ssh librement, sans avoir à taper aucun mot de passe. Vous avez de la chance, c'est exactement ce que le programme    va vous permettre de faire !

Le programme  est en général lancé au démarrage de votre session X, ou depuis un script de démarrage tel que. Il fonctionne en créant un socket Unix, et en enregistrant les variables d'environnement appropriées de telle manière que les applications suivantes puissent utiliser ses services en se connectant à ce socket. Clairement, cela n'a de sens que si vous le démarrez dans le processus parent de votre session X si vous voulez utiliser le jeu de clés privées déchiffrées dans toutes les applications X qui suivent.

When you run ssh-agent, it should tell you the PID of the running ssh-agent, and also set a few environment variables, namely  and. It should also automatically add to it's collection and ask you for the corresponding passphrase. If you have other private keys you want to add to the running ssh-agent, you can use the  command as follows:

Maintenant, la magie ! Comme vous devriez maintenant avoir vos clés privées déchiffrées et prêtes, vous devriez pouvoir vous connecter au serveur ssh sans entrer de mot de passe.

Il serait bon de savoir comment interrompre l'agent ssh au cas où vous en auriez besoin.

Si vous voulez encore plus de confort de l'agent ssh, lisez la section suivante sur l'utilisation de keychain. Assurez-vous de tuer l'agent ssh en fonctionnement, comme indiqué précédemment, si vous décidez de le faire.

Obtenir la dernière goutte de confort de ssh-agent
Keychain va vous permettre de réutiliser un agent ssh entre sessions et, en option, vous demander les phrases de passe à chaque entrée dans la session. Avant d'avancer néanmoins, commencez par l'installer.

En supposant que l'installation a réussi, vous pouvez utiliser keychain librement. Ajoutez ce qui suit à vote  pour l'activer.

Testez le maintenant. Tout d'abord, assurez-vous que l'agent ssh a été tué, puis démarrez un nouveau shell, ordinairement en vous connectant, ou en lançant un nouveau terminal. Il devrait vous inviter à entrer la phrase de passe pour chacune des clés que vous avez entrées sur la ligne de commande. Tous les shells ouverts après ce point devraient réutiliser l'agent ssh, vous autorisant ainsi à vous connecter indéfiniment en ssh sans saisir de mot de passe.

Utiliser keychain avec KDE
Si vous utilisez KDE, au lieu d'utiliser, vous pouvez confier à KDE le soin de gérer l'agent ssh pour vous. Pour cela, vous devez éditer, qui est lu au démarrage de KDE, et , qui est exécuté à l'arrêt de KDE. Voici ce que vous devriez y placer :

Maintenant, tout ce qu'il vous reste à faire, c'est de lancer un terminal de votre choix, comme Konsole, et de charger les clés que vous voulez utiliser. Par exemple :

Vos clés seront mémorisées jusqu'à ce que vous mettiez fin à votre session KDE ou que vous tuiez l'agent ssh à la main.

Considération sur la sécurité
Bien-sûr, l'utilisation de ssh-agent peut ajouter une dose d'insécurité à votre système. Si un autre utilisateur était à même d'utiliser votre shell alors que vous êtes à la machine à café, il pourrait se connecter à tous vos serveurs sans mot de passe. En conséquence, c'est un risque pour les serveurs auxquels vous vous connectez, et vous devriez consulter la politique locale de sécurité. Si vous l'utilisez, prenez les mesures appropriées pour garantir la sécurité de vos sessions.

Dépannage
La majeure partie de tout ceci devrait fonctionner sans problème, mais si vous rencontrez une difficulté, vous devriez certainement connaître quelques points utiles.


 * Si vous ne pouvez pas vous connecter sans ssh-agent, considérez l'idée de vous connecter en ssh avec l'argument -vvv pour identifier ce qui ne va pas. Parfois le serveur n'est pas configuré pour utiliser l'authentification par clé publique, parfois il est configuré pour vous demander un mot de passe quoi qu'il arrive ! Si c'est le cas, vous pouvez utiliser l'option -o avec ssh, ou changer la configuration du serveur  dans ssh_config.
 * Si vous rencontrez des difficultés avec ssh-agent ou keychain, cela peut venir du fait que vous utilisez un shell qui ne comprend pas les commandes qu'ils utilisent. Consultez les pages de man pour ssh-agent et keychain  pour obtenir des informations sur comment les utiliser avec d'autres shells.
 * Vous pouvez aussi consulter la page d'accueil de keychain pour plus de détails.

External resources

 * Official project page
 * IBM developerWorks article series introducing the concepts behind Keychain