Using ssh-agent globally for X session
Cet article est à relire ! Cette page demande à être relue pour correction. Si vous pouvez y participer, merci de le faire en accord avec le Guide stylistique openSUSE. |
Sommaire
Description
Dans des environnements où l'authentification par clé publique est largement utilisée, il est agaçant et maladroit de devoir saisir son mot de passe à chaque fois que vous devez vous connecter à un serveur ou à un service par SSH. ssh-agent est un service qui s'exécuter en tâche de fond et qui garde votre mot de passe à disposition et le fournit automatiquement lorsque nécessaire, sans que vous ayez à le saisir ... mais seulement pour le terminal où ssh-agent a été lancé ainsi que des processus démarrés à partir du terminal.
La procédure ci-dessous décrit comment ssh-agent peut être exécuté pour la session entière et donc pour n'importe quelle application lancée.
Cette procédure a été testée sur :
$> uname -a Linux box 2.6.13-8-smp #1 SMP Tue Sep 6 12:59:22 UTC 2005 i686 i686 i386 GNU/Linux
$> cat /etc/SuSE-release SUSE LINUX 10.0 (i586) OSS VERSION = 10.0
Préparation
Ouvrer un terminal et assurez vous que tous les RPMs requis sont installées.
$> rpm -qa | grep -i ssh openssh-askpass-version pam_ssh-version openssh-version
où version est la version renvoyée par votre système. openssh-askpass est particulièrement important - c'est une petite application graphique qui permet de saisir son mot de passe.
Guide
Les 2 fichiers .xsession et .xinitrc de votre répertoire personnel doivent être paramétrés afin que l'agent SSH puisse fonctionner dans la session X.
fichier .xsession
Ouvrez un terminal et copier le fichier .xession par défaut de votre système si celui n'est pas déjà créé.
$> cp /etc/X11/xdm/sys.xsession ~/.xsession
Éditez le fichier
$> vi ~/.xsession
Recherchez les lignes suivantes et mettez les valeurs :
usessh="yes" sshagent="yes" SSH_ASKPASS="/usr/lib/ssh/x11-ssh-askpass"
Prenez garde que sur les systèmes 64 bits, openssh-askpass est situé dans /usr/lib64/ssh/x11-ssh-askpass
Sauvez le fichier et quittez l'éditeur (ESC :x).
Fichier .xinitrc
Ouvrez un terminal et copier le fichier .xinitrc.template de votre répertoire personnel.
$> cp ~/.xinitrc.template ~/.xinitrc
Éditez le fichier
$> vi ~/.xinitrc
Rechercher la ligne en commantaire ssh-add (ESC /ssh)
# ssh-add
Décommentez cette ligne et sauvez.
ssh-add ESC :x
Vous n'avez plus qu'à quitter votre session X et à vous connecter à nouveau. Vous devriez ensuite être interroger pour saisir votre mot de passe.
Guide (pam_ssh)
Ouvrer un terminal et modifier le fichier /etc/pam.d/xdm en ajoutant les lignes suivantes:
#%PAM-1.0 auth sufficient pam_ssh.so auth include common-auth account include common-account password include common-password session include common-session session required pam_ssh.so session required pam_devperm.so session required pam_resmgr.so
Cela vous permettra de vous authentifier avec KDM et GDM avec votre mot de passe SSH. Aucun autre changement n'est requis.