Ich habe ein öffentliches/privates RSA-Schlüsselpaar auf meinem Laptop; auf einem Remote-Rechner habe ich zwei Konten A und B, die jeweils den öffentlichen Schlüssel in /home/{A,B}/.ssh/authorized_keys haben. Mit dem privaten Schlüssel, der in ssh-agent auf meinem Laptop geladen ist, kann ich ohne Passwort per SSH auf A@remote zugreifen, aber B@remote fordert ein Passwort an.
Ich habe keine ~/.ssh/ssh_config auf meinem Laptop. Benutzer A hat noch kein Passwort; B schon. Das Ändern von /etc/ssh/ssdh_config auf „PasswordAuthentication no“ führt für Benutzer B nur zu „ssh publickey denied“.
Der Server läuft auf Ubuntu 9.10 Karmic mit OpenSSH_5.1p1 Debian-6ubuntu2, OpenSSL 0.9.8g 19. Okt. 2007. Der Laptop läuft auf Ubuntu 10.04 mit OpenSSH_5.3p1.
Antwort1
Es stellte sich heraus, dass im Ordner $HOME/.ssh des beschädigten Benutzers die Schreibberechtigung für die Gruppe aktiviert war. chmod go-rwx $HOME/.ssh
Das Problem wurde behoben.
Antwort2
In meinem Fall war neben den Berechtigungen für die .ssh/authorized_keys
Datei (s. Antwort von @tobym) auch ein gesperrtes Konto die Problemursache.
Debuggen auf dem Server mit sudo tail -f /var/log/auth.log
zeigte
User <account-name> not allowed because account is locked
Das Konto wurde gesperrt, da ich kein Passwort festgelegt hatte, da ich nur eine passwortlose, schlüsselbasierte Authentifizierung wollte. Die Lösung war
sudo passwd <account-name>
und weisen Sie ein zufälliges, komplexes Passwort zu.