Ich versuche unter CentOS 5.4 ein passwortloses SSH-Login einzurichten:
- Ich habe auf dem Client einen öffentlichen RSA-Schlüssel generiert.
- ssh-copy-id vom client zum server.
- Verified ~ / .ssh / authorized_keys enthält den Client-Schlüssel.
Der Client hat weiterhin nach dem Kennwort gefragt. Was habe ich verpasst?
Vielen Dank.
BEARBEITEN: überprüft ssh_config und Berechtigungen wie empfohlen. Dies ist die Debug-Info vom Client:
debug2: key: /home/saguna/.ssh/identity ((nil))
debug2: key: /home/saguna/.ssh/id_rsa (0x2b31921be9a0)
debug2: key: /home/saguna/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup gssapi-with-mic
debug3: remaining preferred: publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug3: Trying to reverse map address 192.168.1.75.
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug1: Unspecified GSS failure. Minor code may provide more information
Unknown code krb5 195
debug2: we did not send a packet, disable method
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/saguna/.ssh/identity
debug3: no such identity: /home/saguna/.ssh/identity
debug1: Offering public key: /home/saguna/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug1: Trying private key: /home/saguna/.ssh/id_dsa
debug3: no such identity: /home/saguna/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
[email protected]'s password:
Antworten:
9/10 Mal, weil ~ / .ssh / authorized_keys nicht im richtigen Modus ist.
quelle
~/.ssh
Verzeichnisse nur von dem Benutzer beschrieben werden.Checken Sie in / etc / ssh / sshd_config ein, um die Authentifizierung mit einem Schlüssel zu ermöglichen. Sie sollten so etwas in sich haben und sicherstellen, dass die Zeilen nicht kommentiert werden:
PS: Vergiss nicht, sshd nach dem Ändern der Datei neu zu starten (/etc/init.d/sshd restart)
quelle
AuthorizedKeysFile
wurde auskommentiert und ich musste auch einen absoluten Pfad angebenauthorized_keys
.Ich stellte fest, dass das Problem bei meinem System darin bestand, dass das Benutzerverzeichnis (/ home / username) mit den falschen Berechtigungen ausgestattet war. Es war
drwxr-x-w-
und musste seindrwxr-xr-x
(mit schriftlicher Genehmigung nur für den Eigentümer). Die Lösung war, chmod zu verwenden:quelle
Ich bin hier kein Experte, aber auch auf ein solches Problem gestoßen, hier sind meine zwei Cent zusätzlich zu all den anderen Vorschlägen.
Manchmal wird
ssh-copy-id
der falsche Schlüssel auf den Remote-Server kopiert (dies kann vorkommen, wenn Sie mehrere Schlüssel haben und / oder nicht standardmäßige Namen für Schlüsseldateien verwenden) oder Ihr Authentifizierungsagent ist falsch konfiguriert.Hier ist ein Zitat aus den Manpages :
Grundsätzlich möchten Sie Folgendes überprüfen:
ssh-add -L
Ausgabe prüfen )ssh-copy-id
denselben Schlüssel auf den Remote-Computer kopiert (melden Sie sich einfach mit dem Kennwort beim Remote-Server an und überprüfen Sie den Inhalt von~/.ssh/authorized_keys
).ssh-copy-id
welchen Schlüssel Sie kopieren möchten:ssh-copy-id -i ~/.ssh/some_public_key
Ich hoffe, das hilft.
quelle
ssh-copy-id
Problem ist:DEFAULT_PUB_ID_FILE=$(ls -t ${HOME}/.ssh/id*.pub 2>/dev/null | grep -v -- '-cert.pub$' | head -n 1)
, die der alphabetischen ersten Schlüssel ausfällt - in meinem Fall habe ich eine hatteid_boot2docker.pub
(was für boot2docker ssh Sachen anscheinend der Standardname ist). Scheint, als gäbe es eine Reihe verschiedener Implementierungen von ssh-copy-id; meins kam vonbrew install ssh-copy-id
, was wiederum von openssh-portable übernommen wird. Meine Manpage erwähnt dieses Verhalten ausdrücklich ...Das häufigste Problem sind ungültige Berechtigungen auf der Serverseite. Es darf keine Ihr Home - Verzeichnis,
~/.ssh
und~/.ssh/authorized_keys
beschreibbar sind von jedermann , aber sie (insbesondere dürfen sie nicht seine Gruppe beschreibbare).Wenn dies nicht das Problem ist,
ssh -vvv server
rufen Sie die Kundenansicht der Konversation auf. Stellen Sie insbesondere sicher, dass der Client den Schlüssel mit dem Server versucht.quelle
~/.ssh
und~/.ssh/authorized_keys
kann von niemandem sein beschreibbar , sondern Sie.Zusätzlich zu all dem kann man immer die sshd-Protokolldatei überprüfen:
quelle
Ich habe die anderen Fixes ausprobiert, aber festgestellt, dass ich das Home-Verzeichnis ändern musste, damit andere keine Schreibrechte haben. Das Home-Verzeichnis war 777. Ich habe es in 755 geändert und es hat funktioniert.
quelle
In meinem Fall enthielt / etc / ssh / sshd_config den folgenden Parameter:
Da ssh-copy-id eine Datei mit dem Namen authorized_keys erstellt hat, musste ich den Eintrag auf den neuen Namen ändern. Weitere Informationen zu veralteten authorized_keys2
quelle
Als Ergänzung zu Omer Dagans Antwort für neuere CentOS 7 verwenden Sie:
zum Betrachten der sshd-Protokolle auf dem Server.
quelle
Das Problem war, dass RSAAuthentication in / etc / ssh / ssh_config deaktiviert war
quelle