Bei der SSH-Verbindung wird nach einem Kennwort gefragt, obwohl der Schlüssel akzeptiert wird


12

Ich werde zur Eingabe eines Passworts aufgefordert, obwohl anscheinend mein SSH-Schlüssel akzeptiert wird. Soweit ich das beurteilen kann, bedeutet die Zeile "Server akzeptiert Schlüssel: pkalg ssh-rsa blen 277" in den Protokollen unten, dass mein Schlüssel akzeptiert wird.

Hier sind Debug-Protokolle:

debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/sam/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-rsa blen 277
debug2: input_userauth_pk_ok: fp <<HASH REDACTED>>
debug1: Authentications that can continue: publickey,password,keyboard-interactive
debug1: Trying private key: /home/sam/.ssh/id_dsa
debug1: Trying private key: /home/sam/.ssh/id_ecdsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug2: we sent a keyboard-interactive packet, wait for reply
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1

Hilfe sehr geschätzt, jeder, den ich gefunden habe, der SSH-Probleme hat, scheitert an einem früheren Punkt, den ich sehe.

Antworten:


11

Ihr privater Schlüssel wurde mit Sicherheit nicht akzeptiert, sondern nur versucht. Es gibt eine Reihe von Möglichkeiten, wie die auf SSH-Schlüsseln basierende Authentifizierung fehlschlagen kann, und die Protokollierung ist nicht wirklich großartig. Daher ist das Debuggen dieses speziellen Problems eine meiner persönlichen Lieblingsaufgaben. Ich habe festgestellt, dass der Fehler normalerweise auf eine der folgenden Situationen zurückzuführen ist.

  • Ihre ~/.ssh/authorized_keysDatei ist zu offen. Zu deinem eigenen Schutz sshdversuche dich vor dir selbst zu schützen. Wenn die Berechtigungen für Ihre Datei mit autorisierten Schlüsseln gültig sind, schlägt die Authentifizierung fehl. Laufen chmod -R go-rwx ~/.ssh.
  • Ihr öffentlicher Schlüssel ~/.ssh/authorized_keysist fehlerhaft. Dies kann auf eine Reihe von Problemen zurückzuführen sein. Am häufigsten tritt jedoch ein Problem beim Kopieren und Einfügen auf. Einige Terminals interpretieren beim Kopieren / Einfügen über Bildschirme einen Zeilenumbruch als neue Zeile. Jeder Eintrag in der authorized_keysDatei muss eine einzelne Zeile sein. Sie können dies überprüfen, indem Sie die Größe Ihres Terminalemulators ändern und feststellen, ob eine Unterbrechung vorliegt, die Ausgabe mit wc -l ~/.ssh/authorized_keysder Anzahl der Schlüssel vergleichen, die sich dort befinden sollten, oder was für Sie am besten geeignet ist. Stellen Sie einfach sicher, dass jeder Schlüssel eine Zeile ist und alles in Ordnung ist.

7

Die von Ihnen eingefügte Ausgabe von ssh -v deutete darauf hin, dass versucht wurde, die Taste zu verwenden, dies jedoch nicht funktionierte. Daher wurde auf keyboard-interactive umgestellt.

Haben Sie das Authentifizierungsprotokoll auf dem Server überprüft, zu dem Sie eine Verbindung herstellen? (zB /var/log/auth.log). Wenn Ihr Setup auf der Remote-Seite falsch ist, z. B. falsche Berechtigungen, werden Sie von ssh -v (oder -vv oder -vvv) nicht darüber informiert, aber von sshd protokolliert.


/var/log/auth.log hielt die Antwort für mich bereit: "Authentifizierung abgelehnt:
falscher

5

In meinem Fall /var/log/authlogzeigte die Datei :

[ID 800047 auth.info] Authentication refused: bad ownership or modes for directory 

Ich hatte die korrekten Eigentumsrechte / Berechtigungen in überprüft, .sshaber die $HOMEhatten 777 Berechtigungen. Festlegen von 755-Berechtigungen für $HOMEzulässiges SFTP. Danke noch einmal.


2

Wenn Sie Zugriff auf den Server haben (direkt oder über ein anderes Login), überprüfen Sie, ob sich der Server angemeldet hat (etwa) /var/log/sshdoder /var/log/secureob dies von Ihrem System abhängt

Dies wird normalerweise durch einen Berechtigungsfehler in Ihrer ~/.ssh/authorized_keysDatei verursacht. Stellen Sie sicher, dass es nicht von der Welt gelesen werden kann, sondern dass es von dem Benutzer (manchmal einem Dienstbenutzer), der sshd ausführt, gelesen werden kann


1
Welches System verwendet /var/log/sshd? Systeme, die ich kenne, verwenden entweder /var/log/auth.logoder /var/log/secure.
Kasperd

1

Berechtigungen von ~/.ssh/authorized_keysin remote sind wichtig ( 600für meine Systeme RHEL und Solaris)

Berechtigungen Ihres Home-Verzeichnisses in Remote ist wichtig ( 700in meinen Systemen)

Am Ende sshdkann es hilfreich sein, den Remote-Computer im Debug-Modus auf einem anderen Port auszuführen :

sudo /usr/sbin/sshd -p 5555 -dd

5555Wenn es sich um einen Beispielport handelt, können Sie diesen ändern. Weitere Informationen hierzu finden Sie unter: http://ubuntuforums.org/archive/index.php/t-2219973.html


0

Ich habe festgestellt, dass es ein Problem gibt, wenn ich den sshdDienst benutze . Um dieses Problem zu vermeiden, beenden Sie den sshdDienst mit service sshd stopund starten Sie den sshdDämon über die Eingabeaufforderung mit sudo /usr/sbin/sshd.


0

Versuchen

/sbin/restorecon -r /root/.ssh

Ein mögliches Problem beim Festlegen von Berechtigungen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.