SSH fragt plötzlich nach dem Passwort

SSH fragt plötzlich nach dem Passwort

Hinweis: Dies ist ein Duplikat vondiese StackOverflow-Frage, da ali786 meinte, dass es hier besser wäre.

Allgemeines Problem

Ich habe meinen Computer (Mac OSX 10.9.4) und einen Remote-Server (Ubuntu 14.04.1 LTS), auf den ich mich per SSH als Root einlogge. Ich habe ssh-keygeneinen SSH-Schlüssel (ohne Passphrase) erstellt, den öffentlichen Schlüssel zum Server hinzugefügt .ssh/authorized_keysund alles war gut. Dann, heute früh, sshwurde ich wieder nach einem Passwort gefragt.

Was könnte die Ursache gewesen sein

Ich bin wirklich nicht sicher, was die Ursache dafür war. Das sind meine besten Vermutungen:

  • Ich musste einige Dateien aus meinem Home-Verzeichnis auf dem Remote-Server entfernen, als ich versehentlich ein Git-Repository dorthin kopierte (ich habe von dort nichts gemacht oder so, sondern nur Dinge rüberkopiert und dann rm'd'). Soweit ich es aus meinem Befehlsverlauf ersehen kann, habe ich keine SSH-relevanten Dateien entfernt, sondern nur .git, .gitignore und verschiedene *.sw?-Dateien, die von vim übrig geblieben sind.
  • Ich habe ssh-keygen -l -f ~/.ssh/authorized_keysden Remote-Server aufgerufen, um mir die Fingerabdrücke (glaube ich) der Schlüssel in dieser Datei anzusehen.

Relevante Protokolle

Beim Ausführen ssh -v -i ~/.ssh/mykey_rsa root@serveripwird Folgendes angezeigt:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/myusername/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 50: Applying options for *
debug1: Connecting to {ip address} [{ip address}] port 22.
debug1: Connection established.
debug1: identity file .ssh/mykey_rsa type 1
debug1: identity file .ssh/mykey_rsa-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: Remote protocol version 2.0, remote software version
OpenSSH_6.6.1p1 Ubuntu-2ubuntu2
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH*
debug1:  Miscellaneous failure (see text)
No credentials cache file found

debug1:  An invalid name was supplied
unknown mech-code 0 for mech 1 2 752 43 14 2

debug1:  Miscellaneous failure (see text)
unknown mech-code 0 for mech 1 3 6 1 5 5 14

debug1:  Miscellaneous failure (see text)
unknown mech-code 2 for mech 1 3 6 1 4 1 311 2 2 10

debug1:  An unsupported mechanism was requested
unknown mech-code 0 for mech 1 3 5 1 5 2 7

debug1:  Miscellaneous failure (see text)
unknown mech-code 0 for mech 1 3 6 1 5 2 5

debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr [email protected] none
debug1: kex: client->server aes128-ctr [email protected] none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Server host key: RSA {fingerprint}
debug1: Host '{ip address}' is known and matches the RSA host key.
debug1: Found key in /Users/myusername/.ssh/known_hosts:16
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: .ssh/otherkey_rsa
debug1: Authentications that can continue: publickey,password
debug1: Offering RSA public key: .ssh/mykey_rsa
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: password
root@serverip's password: 

Ich finde es irgendwie seltsam, dass es einen anderen SSH-Schlüssel (otherkey_rsa) ausprobiert hat, bevor ich den verwendet habe, den ich angegeben habe (mykey_rsa), aber ich kenne mich mit SSH nicht gut genug aus, um das gut zu analysieren.

In der Zwischenzeit sagt der Remote-Server /var/log/auth.loghilfreich

Aug 12 02:04:19 servername sshd[22147]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
Aug 12 02:04:19 servername sshd[22147]: Authentication refused: bad ownership or modes for directory /root

Berechtigungen

Lokal/auf meinem Computer:

~/                     drwxr-xr-x+ 105 myusername staff 3570 Aug 11 23:14
~/.ssh/                drwx------   13 myusername staff  442 Aug 11 23:14
~/.ssh/mykey_rsa.pub   -rw-r--r--    1 myusername staff  397 Aug  5 20:52
~/.ssh/mykey_rsa       -rw-------    1 myusername staff 1675 Aug  5 20:52

Remote/auf dem Server:

~/                     drwxr-xr-x    8        501 staff 4096 Aug 12 02:16
~/.ssh/                drwx------    2       root root  4096 Aug 12 01:49
~/.ssh/authorized_keys -rw-------    1       root root   794 Aug 12 01:44

Remote im /etc/ssh/Verzeichnis:

/etc/ssh $ ls -la
drwxr-xr-x  2 root root   4096 Aug 12 11:01 .
drwxr-xr-x 96 root root   4096 Aug 12 01:40 ..
-rw-r--r--  1 root root 242091 Apr 14 08:13 moduli
-rw-r--r--  1 root root   1690 Apr 14 08:13 ssh_config
-rw-r--r--  1 root root   2528 Apr 17 15:43 sshd_config
-rw-------  1 root root    672 Aug  6 00:41 ssh_host_dsa_key
-rw-r--r--  1 root root    606 Aug  6 00:41 ssh_host_dsa_key.pub
-rw-------  1 root root    227 Aug  6 00:41 ssh_host_ecdsa_key
-rw-r--r--  1 root root    178 Aug  6 00:41 ssh_host_ecdsa_key.pub
-rw-------  1 root root   1679 Aug  6 00:41 ssh_host_rsa_key
-rw-r--r--  1 root root    398 Aug  6 00:41 ssh_host_rsa_key.pub
-rw-r--r--  1 root root    338 Apr 17 11:48 ssh_import_id

Der Grund, warum es nicht geladen werden konnte, scheint also darin zu liegen, /etc/ssh/ssh_host_ed25519_keydass es nicht existiert. Sollte es das? Wenn ja, wie kann ich es erstellen?

Ich bin diesbezüglich wirklich ratlos und wäre für Hilfe sehr dankbar! Vielen Dank!

Antwort1

auth.logsagt Ihnen genau, wo das Problem liegt: /rootgehört einem anderen Benutzer als remoteuser oder root, ist aber irgendwie wichtig für Ihre Anmeldung. Entweder remoteuserIstroot, oder seine .ssh-Dateien sind symbolische Links zu einem Ort darunter /root.

Außerdem fällt mir auf, dass Ihre Zeile „ls“ anzeigt, dass ~/sie dem Benutzer 501 gehört. Das löst denselben Fehler aus.

Meine Vermutung, was sich geändert hat, ist, dass Ihr sshd_configjetzt angibt StrictModes.

verwandte Informationen