Warum SSH jedes Mal nach meinem Passwort für den privaten Schlüssel fragt
9
Seit gestern wurde ich jedes Mal, wenn ich versuche, eine Verbindung zu einem SSH-Server herzustellen, nach meinem Passwort gefragt. Was soll ich tun, damit SSH nicht jedes Mal nach meinem Passwort fragt?
Blinde Vermutung von mir: Überprüfen Sie, ob Ihr Schlüssel mit geladen ist ssh-add -l.
jw013
Ich nehme an, Sie verwenden SSH-Schlüssel? Wenn Sie keinen Schlüsselmanager verwenden und eine nicht leere Passphrase haben, ist dies normal. Verwenden Sie entweder einen Schlüsselmanager oder erstellen Sie eine leere Passphrase für Ihren Schlüssel. Ersteres wird empfohlen.
Wenn es "seit gestern" ist, haben Sie vielleicht nur Ihr System aktualisiert und jetzt funktioniert ssh-agent nicht mehr.
Coren
Antworten:
5
Geben Sie Ihren öffentlichen Schlüssel ein hostnachine:~/.ssh/authorized_keysund stellen Sie sicher, dass er über die entsprechenden Berechtigungen verfügt - chmod 600. Weitere Informationen finden Sie in der Manpage, Abschnitt AUTHENTICATION. Beachten Sie, dass sshd möglicherweise so konfiguriert ist, dass diese Anmeldemethode nicht zulässig ist, obwohl ich nicht verstehen kann, warum.
Danke, das hat funktioniert. Können Sie mir jedoch erklären, warum ich es in autorisierten Schlüsseln ablegen muss und warum es zuvor ohne es funktioniert hat?
Ben D
1
Die Manpage enthält die Informationen im Abschnitt AUTHENTICATION. Ich kann mir nicht sicher sein, warum es vorher funktioniert hat, ohne Root-Zugriff auf Ihre Computer zu haben und einige forensische Arbeiten auszuführen.
Sardathrion - gegen SE Missbrauch
2
Sie können auch ssh-copy-id verwenden, um Ihren öffentlichen Schlüssel automatisch auf den Zielhost zu kopieren, wenn Sie ihn nicht manuell kopieren möchten / müssen.
Coren
2
Überprüfen Sie die Verzeichnis- und Dateiberechtigungen.
$HOME kann nicht von einer Gruppe oder anderen beschreibbar sein.
$HOME/.sshmuss über 700Berechtigungen verfügen , die von Gruppen und anderen nicht lesbar, beschreibbar oder ausführbar sind.
$HOME/.ssh/authorized_keys von niemandem beschreibbar oder ausführbar sein.
Wenn Sie feststellen, dass die Berechtigungen nicht streng genug sind, versuchen Sie herauszufinden, was das Problem verursacht hat. Das letzte Mal, als mir das passiert ist, hatte ich PHP von Grund auf neu kompiliert. Die Ausführung make installals root (Slackware) hat die Berechtigungen und den Besitz von /oder, /homewie ich mich erinnere, geändert authorized_keysund verhindert id_rsa.pub, dass ssh mit Dateien arbeitet, die bereits vorhanden waren und seit Ewigkeiten funktionieren. Sie möchten feststellen, was das Problem verursacht hat, da aufgrund einer Rootkit-Installation oder ähnlichem ein geänderter Verzeichnisbesitz und / oder eine geänderte Berechtigung auftreten kann.
Dies hat es für mich behoben. Nachdem ich meine Berechtigungen korrigiert hatte, fügte ich es mit 'ssh-add' hinzu. Nachdem ich das Terminal geschlossen und wieder geöffnet und 'ssh-add -l' (unteres L) ausgeführt hatte, konnte ich meine Identität sehen , was funktionierte .. Ich konnte SSH auf alle meine Boxen übertragen, ohne meinen privaten Schlüssel mehr als 300 Mal am Tag eingeben zu müssen !! Danke!
ssh-add -l
.Antworten:
Geben Sie Ihren öffentlichen Schlüssel ein
hostnachine:~/.ssh/authorized_keys
und stellen Sie sicher, dass er über die entsprechenden Berechtigungen verfügt - chmod 600. Weitere Informationen finden Sie in der Manpage, Abschnitt AUTHENTICATION. Beachten Sie, dass sshd möglicherweise so konfiguriert ist, dass diese Anmeldemethode nicht zulässig ist, obwohl ich nicht verstehen kann, warum.quelle
Überprüfen Sie die Verzeichnis- und Dateiberechtigungen.
$HOME
kann nicht von einer Gruppe oder anderen beschreibbar sein.$HOME/.ssh
muss über700
Berechtigungen verfügen , die von Gruppen und anderen nicht lesbar, beschreibbar oder ausführbar sind.$HOME/.ssh/authorized_keys
von niemandem beschreibbar oder ausführbar sein.Wenn Sie feststellen, dass die Berechtigungen nicht streng genug sind, versuchen Sie herauszufinden, was das Problem verursacht hat. Das letzte Mal, als mir das passiert ist, hatte ich PHP von Grund auf neu kompiliert. Die Ausführung
make install
als root (Slackware) hat die Berechtigungen und den Besitz von/
oder,/home
wie ich mich erinnere, geändertauthorized_keys
und verhindertid_rsa.pub
, dass ssh mit Dateien arbeitet, die bereits vorhanden waren und seit Ewigkeiten funktionieren. Sie möchten feststellen, was das Problem verursacht hat, da aufgrund einer Rootkit-Installation oder ähnlichem ein geänderter Verzeichnisbesitz und / oder eine geänderte Berechtigung auftreten kann.quelle