SSH-Agent für Authentizierung mit sudo verwenden


Pam-ssh-agent-auth ist ein PAM-Modul, um SSH-Schlüssel für die Authentizierung mit sudo zu verwenden. Das ständige eintippen des Passwortes kann auf die Dauer lästig werden, aber die authentizierung ganz abzuschalten fühlt sich auch irgendwie falsch an. Dieses Modul stellt einen guten Kompromiß dar.

Installation

Die Installation ist auf CentOS 7 (und CentOS 6) ist recht einfach, da das Modul einfach mit yum installiert werden kann:

yum install pam_ssh_agent_auth

Konfiguration

Nach der Installation sind noch ein paar Anpassungen notwendig, damit das Modul mit sudo verwendet wird. Die Umgebungsvariable SSH_AUTH_SOCK muß von sudo erhalten bleiben. Hierzu muß in der sudoers-Datei (mit visudo bearbeiten) folgende Zeile ergänzt werden: (Die Datei enthält bereits einige env_keep-Zeilen. Diese sollte einfach hinter die anderen env_keep-Zeilen angehängt werden.)

Defaults    env_keep += "SSH_AUTH_SOCK"

Jetzt muß noch PAM auch das Modul für sudo verwenden. In der /etc/pam.d/sudo-Datei muß am Anfang (nach der Zeile mit #%PAM-1.0) folgende Zeile eingefügt werden:

auth       sufficient   pam_ssh_agent_auth.so file=%h/.ssh/authorized_keys

Damit ist die ganze Konfiguration abgeschlossen.

Test

Um zu Testen, ob das nun funktioniert, sollte man sich mit einem SSH-Schlüssel auf der Maschine anmelden und dann mit erst sudo -k möglicherweise noch gecachte Login-Daten aus sudo löschen und dann mit sudo -l schauen, was sudo einem erlaubt.

Sollte sudo unerwartet trotzdem nach dem Passwort fragen, kann man in der /var/log/secure nach Hinweisen für das Problem suchen. In meinem Fall hatte ich schlichtweg vergessen, den SSH-Agent beim SSH-Login weiterzuleiten (-A von der Kommandozeile oder ForwardAgent yes in der ~/.ssh/config.


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.