[Linux] Single Sign On mittels SSH

Nun dürfte es sich ja bereits herumgesprochen haben, dass auf entfernte Rechner per SSH zugegriffen wird. Sei es um die Rechner zu administrieren oder auf ein dort befindliches Git-, Subversion- oder was auch immer für ein Repository zugegriffen wird. Aus Sicherheitsgründen kommt zur Authentifizierung ein SSH-Schlüsselpaar zum Einsatz wobei der öffentliche Schlüssel auf jeden SSH-Server kopiert wird, der erreicht werden soll.

Soweit das Setup. Wenn nun auf den entfernten Rechner zugegriffen wird, erfolgt die Authentifizierung nicht durch das Übertragen eines Passwortes an den Server sondern per SSH-Schlüssel. Dieser kann und sollte auch beim Erzeugen mit einem Passwort gesichert werden. Beim Verwenden des SSH-Schlüssels wird nun lokal dieses Passwort abgefragt.

Wer nicht bei jedem Kontakt zum Server, was bei der Verwendung von GIT durchaus viele sein können, nicht jedesmal das Passwort eintippen möchte, greift zu ssh-add. Das schaltet nach Eingabe des korrekten Passwortes den SSH-Schlüssel frei und fügt ihm den SSH-Agenten zu. Dieser wird bei jedem SSH-Befehl nach dem freigeschalteten Schlüssel abgefragt.

Das ist schon recht komfortabel. Dank Pluggable Authentication Modules kann aber bereits beim Login am lokalen Rechner der SSH-Schlüssel freigeschalten und an den SSH-Agenten übergeben werden. Per

wird PAM-SSH installiert. Die Debian- und damit auch die Ubuntu-Pakete richten die Authentifizierung so ein, dass normal gegen das Unix-Passwort authentifiziert wird. Danach gelangt das Passwort an PAM-SSH, welches den SSH-Schlüssel frei schaltet. Vorausgesetzt natürlich beide Passwörter sind gleich.

Perfekt! Leider hat diese Konstellation einen Haken. Ist das Heimatverzeichnis per ecryptfs verschlüsselt, hat PAM keine Chance auf den sicheren SSH-Schlüssel, der im Normalfall in ~./ssh/ gespeichert wird, zuzugreifen. Das Problem ist bekannt und einen entsprechenden Bugreport gibt es auch.

[Linux] Single Sign On mittels SSH
Markiert in:             

Kommentar verfassen