Login
Newsletter
Werbung

Do, 4. November 2004, 00:00

Elegante SSH-Authentifizierung Reloaded

Single-Sign-On mit pam_ssh in Debian

Dieser Artikel zeigt, wie auf Debian ein sogenanntes "Single-Sign-On" eingerichtet wird, d.h. ein Nutzer authentifiziert sich am Linux-Rechner nicht über sein normales Unix-Passwort, sondern über die Passphrase seines SSH-Schlüssels.

Kleine Erinnerung

In meinem Schritt-für-Schritt-Artikel Elegante SSH-Authentifizierung über PAM habe ich gezeigt, wie auf Gentoo ein sogenanntes "Single-Sign-On" eingerichtet wird, d.h. ein Nutzer authentifiziert sich am Linux-Rechner nicht über sein normales Unix-Passwort, sondern über die Passphrase seines SSH-Schlüssels. Ist der Schlüssel auch anderen Rechnern bekannt, muss also nur einmal die Passphrase eingegeben werden, um komfortabel Zugang auf diesen anderen Rechnern zu erhalten.

pam_ssh in Debian

Heute zeige ich eine Möglichkeit, dieses Single-Sign-On auch auf Debian einzurichten, Debian/Sid genauer gesagt. Leider gibt es offenbar bisher kein vorkompiliertes Paket, so dass wir auf uns selbst gestellt sind. Los geht's! Von Sourceforge laden wir uns den Quellcode von pam_ssh herunter und entpacken das Archiv mit

tar -xvjf ./archivname

Nun wechseln wir in der Konsole in das neu entstandene Verzeichnis und beginnen - noch als normaler Nutzer angemeldet - mit dem Kompilieren:

./configure; make

Das Kompilieren sollte nicht länger als ein paar Sekunden dauern. Nun bauen wir uns ein provisorisches Debian-Paket, das wir bei Bedarf ganz bequem und wie gehabt mit apt-get oder dpkg deinstallieren können - auf diese Art erstellte Pakete sind aber nicht für eine Veröffentlichung bestimmt. Also geben wir als root ein:checkinstall

Wenn checkinstall noch nicht installiert sein sollte, ist jetzt eine gute Gelegenheit, es zu mit

apt-get install checkinstall

zu installieren und dann wie erwähnt checkinstall im pam_ssh-Verzeichnis zu starten.

Im Grunde können alle Fragen, die checkinstall stellt, mit ENTER beantwortet werden. Scheitert das Bauen des Pakets, liefert das Log wertvolle Hinweise. Bei meinen Versuchen scheiterte checkinstall an unerlaubten Zeichen im Namen. In diesem Fall können wir einen anderen Namen wählen, wenn checkinstall folgende Anzeige darstellt:

This package will be built according to these values:
0 - Maintainer: [ rschmidt@callisto ]
1 - Summary: [ Package created with checkinstall 1.5.3 ]
2 - Name: [ pam_ssh-1.91 ]
3 - Version: [ 1.91 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ checkinstall ]
7 - Architecture: [ i386 ]
8 - Source location: [ pam_ssh-1.91 ]
9 - Alternate source location: [ ]
Enter a number to change any of them or press ENTER to continue:

Hier wählen wir "2", geben als Namen "libpamssh" ein und bestätigen den Rest wieder mit ENTER. Das neue Paket ist im aktuellen Verzeichnis zu finden und kann mit

dpkg -i ./paketname.deb

installiert werden.

Im ersten Teil wurde PAM systemweit eingerichtet, d.h. auch über eine TTY-Konsole (oder KDM, GDM etc.) mussten die Nutzer sich per SSH-Passphrase authentifizieren. Dieses Mal richten wir die Abfrage nur für GDM-Nutzer ein. Dazu bearbeiten wir als root die Datei /etc/pam.d/gdm. Diese sieht normalerweise so aus (GNOME aus Experimental, müsste aber auch sonst so aussehen):

#%PAM-1.0
auth requisite pam_nologin.so
auth required pam_env.so
@include common-auth
@include common-account
session required pam_limits.so
@include common-session
@include common-password

Wir ändern die Datei so, dass sie wie folgt aussieht:

#%PAM-1.0
auth requisite pam_nologin.so
auth sufficient /lib/security/pam_ssh.so
auth required pam_env.so
@include common-auth
@include common-account
session sufficient /lib/security/pam_ssh.so
session required pam_limits.so
@include common-session
@include common-password

Nur die beiden Zeilen mit pam_ssh.so sind hinzugekommen. Beim nächsten Login über GDM wird dann die SSH-Passphrase abgefragt.

  • Dieses Werk wurde unter der GNU Free Documentation License veröffentlicht. Das Kopieren, Verbreiten und/oder Modifizieren ist erlaubt unter den Bedingungen der GNU Free Documentation License, Version 1.2 oder einer späteren Version, veröffentlicht von der Free Software Foundation.

    - Weitere Informationen
Kommentare (Insgesamt: 0 )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung