Notes et astuces sur les systèmes libres basés sur GNU/Linux

Aller au contenu | Aller au menu | Aller à la recherche

Mot-clé - slim

Fil des billets

vendredi, 20 décembre 2013

Faire du sso avec ssh sous Archlinux, slim et zsh

Pam-Anderson1.jpgUn billet un peu technique mais qui me semble super utile dans notre gestion des clés ssh au quotidien.

La petite histoire

Avec mon serveur dédié à administrer, je me suis replongé sur cette histoire de clé ssh.
J'en avais déja parlé dans mon article sur la migration de clé ssh entre windows et Archlinux mais la manipulation que j'avais proposé me paraissait bancale.
Je souhaitais trouver quelque chose de plus propre et de plus intégré.
J'ai essayé de me tourner vers seahorse mais cette tentative fut vite interrompue car le logiciel plantait et ne gérait pas mes accès ssh depuis un terminal.
Si quelqu'un dans la salle l'utilise, je suis preneur d'une explication censée.

Sur le papier : SSO et pam_ssh

Ayant lu un billet sur pam_ssh, je souhaitais mettre cette solution en place.
Sur le principe, cette méthode est ce qui se fait de mieux en terme de sécurité/simplicité d'utilisation.

  • On se loggue via son gestionnaire de session avec son login
  • On peut soit rentrer son mot de passe unix soit sa passphrase de sa clé située dans votre .ssh
  • Si la passphrase est valide, le gestionnaire de session lance ssh-agent et ajoute de lui-même la bonne clé dans votre trousseau.
  • Ainsi, vous beneficiez d'un ssh-agent tout configuré au plus haut niveau de votre session (en terme de processus).

En pratique : Archlinux, slim, pam_ssh, zsh

Pour arriver à vos fins, il vous faudra installer la librairie PAM SSH, elle n'est malheureusement disponible que dans AUR.

yaourt -Sy aur/pam_ssh

Ensuite, il vous suffit de modifier votre configuration de pam :

vim /etc/pam.d/login
#%PAM-1.0

auth       required     pam_securetty.so
auth       requisite    pam_nologin.so
+auth       sufficient   pam_ssh.so
auth       include      system-local-login
account    include      system-local-login
session    include      system-local-login
+session    optional     pam_ssh.so

Cette modification vous permettra de faire fonctionner votre pam_ssh avec gdm, kdm et sur un tty mais pas sur XDM ou Slim.
Pour avoir cette merveilleuse fonctionnalité, il vous faudra modifier également le fichier /etc/pam.d/slim

vim /etc/pam.d/slim
#%PAM-1.0
+auth       sufficient   pam_ssh.so
auth        include     system-local-login
account     include     system-local-login
session     include     system-local-login
+session    optional     pam_ssh.so

Note à moi-même : Pour utiliser .zprofile et .zlogin quand on utilise zsh

Cela n'a rien avoir avec la choucroute mais pour bénéficier des scripts .zlogin ou .zprofile, il faut définir dans slim zsh comme un login shell.

vim /etc/slim.com
...
login_cmd           exec /usr/bin/zsh --login ~/.xinitrc %session
...

Maintenant, vous n'avez plus qu'à vous deconnecter ou essayer sur un tty avec votre login et votre passphrase.
Pour vérifier que tout fonctionne, je vous propose les commandes suivantes :

#Normalement le ps devrait vous retourner un process de ce style
ps faux | grep ssh
ssh-agent -s

#Lister les clés en mémoires
ssh-add -l
1024 65:22:54:00:4a:5f.... /home/toto/.ssh/id_dsa (DSA)

Nota Bene :

  • J'ai observé que le mécanisme mis en place ne fonctionnait pas tout le temps et vous ?
  • Je viens d'y penser, si vous le souhaitez vous pouvez également ne pas utiliser de passphrase dans votre clé ssh ! Cela vous permettra de ne plus être importuné par le ssh à chaque connexion :D

Sources :

Ps :

Paméla est là pour représenter PAM, logique non ?