OpenSSH Public Key Authentication schlägt fehl

Aus Thomas-Krenn-Wiki
Zur Navigation springen Zur Suche springen

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:


Foto Christoph Mitasch.jpg

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.


Das könnte Sie auch interessieren

Ausführbare SSH-Kommandos per authorized keys einschränken
SSH Login unter Debian mit fail2ban absichern
SSH Root Login unter Debian verbieten