Using ssh-agent globally for X session

Aller à : navigation, rechercher
Acroread.png 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.
Si vous cherchez quelque chose à faire, regardez les autres Pages à relire.

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

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.