OpenSSH Public Key Authentication schlägt fehl
Dieser Artikel beschreibt wie Probleme bei der SSH Authentifizierung mittels Public Key Authentication behoben werden können. Wie die grundsätzliche Einrichtung der Public Key Authentication erfolgen kann, können Sie im Artikel SSH Key Login nachlesen.
Serverseitige Probleme
Meist ist der Grund für eine nicht funktionierende Public Key Authentification bei den Datei- und Verzeichnisrechten zu finden. Das Homeverzeichnis am Server sowie das Unterverzeichnis .ssh darf keine Schreibrechte für Group und Other haben. Ebenso darf die Datei authorized_keys
nur vom Besitzer zugreifbar sein.
Um die Rechte korrekt zu setzten, loggen Sie sich am Server mit dem User ein, für den die SSH Authentication funktionieren soll.
chmod go-w $HOME $HOME/.ssh chmod 600 $HOME/.ssh/authorized_keys chown `whoami` $HOME/.ssh/authorized_keys
Falls dies nicht möglich sein sollte, können Sie alternativ die Rechteprüfung des Servers deaktivieren. Folgende Option muss in der Datei /etc/ssh/sshd_config
eingetragen werden:
StrictModes no
Eine andere Fehlerquelle kann noch eine falsche Einstellung in /etc/ssh/sshd_config
sein. Hier ein Auszug von Optionen, welche die Public Key Authentication beeinflussen können:
- AuthorizedKeysFile
- PreferredAuthentications
- PubkeyAuthentication
Weitere Einstellungen finden Sie in der Manpage man sshd_config.
Clientseitige Probleme
Alternativ kann es noch Probleme auf der Clientseite geben, also am Rechner von dem aus die SSH Verbindung initiiert wird.
Falls die Dateirechte für den Private Key dort zu offen gesetzt sind, bekommt man vom SSH Client folgende Fehlermeldung:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions 0777 for 'xyz' are too open. It is recommended that your private key files are NOT accessible by others. This private key will be ignored. bad permissions: ignore key: xyz Permission denied (publickey,gssapi-with-mic).
In diesem Fall wird der Private Key einfach ignoriert. Setzen Sie die Rechte mit folgendem Kommando korrekt:
chmod 600 $HOME/.ssh/<Keyname>
Eine weitere mögliche Fehlerquelle kann noch eine falsche Einstellung in .ssh/config
oder /etc/ssh/ssh_config
sein. Ein Auszug von möglichen Optionen, welche die Public Key Authentication beeinflussen können, findet sich hier:
- PreferredAuthentications
- PubkeyAuthentication
Alle Einstellungen finden Sie in der Manpage man ssh_config.
Quellen:
Autor: Christoph Mitasch Christoph Mitasch arbeitet in der Abteilung Web Operations & Knowledge Transfer bei Thomas-Krenn. Er ist für die Betreuung und Weiterentwicklung der Webshop Infrastruktur zuständig. Seit einem Studienprojekt zum Thema Hochverfügbarkeit und Daten Replikation unter Linux beschäftigt er sich intensiv mit diesem Themenbereich. Nach einem Praktikum bei IBM Linz schloss er sein Diplomstudium „Computer- und Mediensicherheit“ an der FH Hagenberg ab. Er wohnt in der Nähe von Linz und ist neben der Arbeit ein begeisterter Marathon-Läufer und Jongleur, wo er mehrere Weltrekorde in der Team-Jonglage hält.
|