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
.