Single Sign-On mit Ubuntu, SSH und PAM

Mit PAM und SSH lässt sich auch ohne zentralen Login-Server ein passables SSO realisieren. Damit entfällt das lästige Passwort-eingeben beim SSH-Login oder mounten via SSH.

  1. SSH-Schlüssel erstellen: Entweder über die Konsole ($ ssh-keygen) oder über das GUI:
    1. Schlüsselmanager öffnen:
    2. "Neuer SSH-Schlüssel" auswählen:
    3. Als Kommentar am besten user@host eingeben. Dann kann man den Schlüssel später besser zuordnen:
    4. Als Passphrase kann man zum Beispiel einen Satz nehmen und ein paar Buchstaben vertauschen, auslassen oder durch Zahlen ersetzen. So kann zum Beispiel aus "Der Himmel ist grau und es regnet." der Passphrase "derH!mm3Li$tgraUndESrgnt." werden. Da ist alles drin, was man sich in einem guten Passwort wünscht: Groß- und Kleinbuchstaben, Zahlen und sogar Sonderzeichen und merken kann man sich das dann auch relativ gut.
  2. Die entsprechende Bibliothek für PAM mit $ sudo aptitude install libpam-ssh installieren
  3. Nun müssen noch die entsprechenden Anwendungen von der neuen Möglichkeit in Kenntnis gesetzt werden. Dazu in den Konfigurationsdateien in /etc/pam.d nach @include common-auth suchen und in die Zeile darüber @include pam-ssh-auth eintragen. Anschließend noch nach @include common-session suchen und darüber @include pam-ssh-session eintragen.
    GDM (Anmelde-Manager)
    /etc/pam.d/gdm
    Login auf der Konsole
    /etc/pam.d/login</dd>
    sudo
    /etc/pam.d/sudo: Nur @include pam-ssh-auth. Falls der Key falsch eingegeben wird, fällt sudo auf das normale Password zurück. Um das zu deaktivieren, kann man #@include common-auth mit einer Raute deaktivieren.
    </dl> </li> </ol>

    Update: Mir ist grade aufgefallen, dass man das unter Ubuntu so gar nicht braucht, weil da der Gnome-Keyring-Manager das alles verwaltet. Macht aber nix: funktioniert ja auch unter andern Distributionen ;-)