Login
Newsletter
Fr, 16. April 2004, 00:15

Elegante SSH-Authentifizierung über PAM

Wer häufig per SSH auf anderen Rechnern arbeitet, muss viele Kennwörter im Kopf haben und in die Tastatur tippen. Mit der Zeit wächst der Wunsch nach Erleichterung...

Abhilfe schafft die automatische Authentifizierung per SSH mittels öffentlichen Schlüsseln.

So wird's gemacht:

Zunächst wird ein SSH-Schlüsselpaar erzeugt:

% ssh-keygen -t rsa (oder: ssh-keygen -t dsa)

Nach der Eingabe eines längeren Kennwortes oder eines Satzes (engl. Passphrase) werden in $HOME/.ssh die Dateien id_rsa und id_rsa.pub erzeugt.

Nun kopiert man die Datei id_rsa.pub mittels scp in das $HOME/.ssh des Rechners, auf den man sich automatisch einloggen lassen möchte, und nennt die Datei dort authorized_keys2.

Wenn bereits eine solche Datei existiert, erweitert man diese Datei mit dem neuen Schlüssel, z.B. mit

% cat authorized_keys2 >> <dateimitvorhandenenschlüsseln>

Beim nächsten Login wird nicht mehr das bisherige Login-Passwort abgefragt, dafür allerdings das SSH-Kennwort.

SSH-Agent

Damit auch nicht mehr nach dem SSH-Kennwort gefragt wird, wird ein sogenannter SSH-Agent benötigt. Dieser wartet, nachdem das SSH-Kennwort beim Rechnerstart einmal abgefragt wurde, auf bevorstehende SSH-Logins und kümmert sich um die Authentifizierung, damit der Nutzer nichts mehr machen muss.

Alle Anleitungen und HOWTOs, die ich im Netz zu diesem Thema gefunden habe, enthielten das Bearbeiten von .xinitrc und/oder .xsession. Benutzt man KDM/GDM/XDM, wird es nochmal ein Stück komplizierter. Außerdem müssen zwei Kennwörter eingegeben werden.

PAM-Modul

Einfacher dagegen ist es, einfach ein entsprechendes PAM-Modul zu verwenden. Ist dieses Modul installiert und konfiguriert, loggt man sich mit dem SSH-Kennwort am Rechner ein, nicht mehr mit dem normalen Nutzer-Kennwort. Der Vorteil liegt auf der Hand: statt zwei Kennwörtern (normaler Login + SSH-Kennwort) muss nur noch ein einziges eingegeben werden. Das Modul startet auch den SSH-Agenten.

Ich bin Gentoo-Nutzer, daher gehe ich jetzt nur auf diese Distribution ein. Bei anderen müsste es aber ähnlich funktionieren.

Als erstes wird das ssh_pam-Modul installiert. Als root eingeben:

emerge pam_ssh

Danach muss noch PAM vom neuen Modul in Kenntnis gesetzt werden:

zcat /usr/share/doc/pam_ssh-1.9/system-auth.example.gz | grep ssh >> /etc/pam.d/system-auth

(Evtl. die Pfade an reale Gegebenheiten anpassen!)

Dieses hängt der Datei /etc/pam.d/system-auth zwei neue Zeilen an. Die neue vorletzte Zeile mit "auth" und "sufficient" muss mit einem Texteditor an die zweite Stelle der Liste geschoben werden.

Achtung: Im Portage-Tree von Gentoo gibt es auch ein Paket namens pam_ssh_agent, das zusammen mit den Paketen Keychain und Expect läuft. Dieses Paket ist nicht gemeint! Bei einem kurzen Test funktionierte der automatische SSH-Login nur, wenn man sich einmal direkt über die Konsole eingeloggt und dann das SSH-Kennwort (die Passphrase des Schlüssels) eingegeben hatte. Per KDM konnte ich mich nicht mit dem SSH-Kennwort einloggen. Alles in allem ist pam_ssh_agent also nicht so komfortabel wie das pam_ssh-Modul.

Fertig! Das war es schon. Beim nächsten Login muss dann das SSH-Kennwort eingegeben werden, der SSH-Agent wird automatisch gestartet und kümmert sich um weitere SSH-Logins auf anderen Rechnern.

  • 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: 20 || Alle anzeigen )
nfs? (nfs, Fr, 7. September 2007)
pam_ssh (jpp, Sa, 6. November 2004)
Re: Ergaenzung/Berichtigung (Till, Sa, 6. November 2004)
Re: ssh-copy-id (Michael, Fr, 16. April 2004)
Re[2]: emerge pam_ssh (Rene Schmidt, Fr, 16. April 2004)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten