SSH-Login klappt nicht
Für die SSH-Verbindung zu einem Unix-Server möchte ich das Public-Key-Login an Stelle eines Passworts benutzen. Mit ssh-keygen habe ich mir schon ein DSA-Schlüsselpaar erzeugt und den öffentlichen Teil in der Datei .ssh/authorized_keys auf dem Server abgelegt. Trotzdem kann ich mich weiterhin nur mit meinem Passwort anmelden. Woran kann das denn noch liegen?
- Björn Hansen
Für die SSH-Verbindung zu einem Unix-Server möchte ich das Public-Key-Login an Stelle eines Passworts benutzen. Mit ssh-keygen habe ich mir schon ein DSA-Schlüsselpaar erzeugt und den öffentlichen Teil in der Datei .ssh/authorized_keys auf dem Server abgelegt. Trotzdem kann ich mich weiterhin nur mit meinem Passwort anmelden. Woran kann das denn noch liegen?
Zunächst sollten Sie prüfen, ob Ihr SSH-Client überhaupt das Public-Key-Login anfordert. Für OpenSSH legt in der Datei .ssh/config die Zeile mit der Option ‘PreferredAuthentications’ die Reihenfolge der Login-Methoden fest. Wenn sie fehlt, ist alles in Ordnung, denn dann probiert OpenSSH den Schlüssel, bevor es nach einem Passwort fragt. Zusätzlich sollten Sie den Client mit der Kommandozeilenoption -2 zwingen, die Version 2 des SSH-Protokolls zu benutzen.
Außerdem muss die Schlüsseldatei auf dem Server die richtigen Zugriffsrechte haben. Nur wenn niemand außer Ihnen das .ssh-Verzeichnis oder den Schlüssel ändern darf, benutzt ihn der SSH-Server aus dem OpenSSH-Paket. Dafür sorgen die Befehle
chmod go-rwx .ssh
chmod go-rwx .ssh/authorized_keys
Ältere Versionen des OpenSSH-Servers erwarten DSA-Schlüssel nicht in der Datei authorized_keys, sondern in authorized_keys2. Legen Sie einfach einen Link zu Ihrer Schlüsseldatei an:
ln .ssh/authorized_keys .ssh/authorized_keys2
Wenn dieser Link das Problem behebt, alarmieren Sie sofort den Systemverwalter, denn die Versionen von OpenSSH, die authorized_keys2 brauchen, gelten inzwischen als unsicher! (je) (ha)