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-keygen
einen SSH-Schlüssel (ohne Passphrase) erstellt, den öffentlichen Schlüssel zum Server hinzugefügt .ssh/authorized_keys
und alles war gut. Dann, heute früh, ssh
wurde 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_keys
den 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@serverip
wird 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.log
hilfreich
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_key
dass 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.log
sagt Ihnen genau, wo das Problem liegt: /root
gehö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_config
jetzt angibt StrictModes
.