Ich habe erfolgreich eine schlüsselbasierte Authentifizierung für Root-Benutzer von meinem A-Computer auf meinen B-Computer erstellt.
Jetzt habe ich auf der B-Maschine einen neuen Benutzer erstellt, genau wie auf der A-Maschine. Rufen wir ihn an USER
. Ich habe ein Home-Verzeichnis für ihn auf der B-Maschine erstellt /home/USER
und möchte eine schlüsselbasierte Authentifizierung für ihn von Maschine A bis B-Maschine erstellen.
Also lief ich auf einer Maschine
ssh-keygen -t rsa
, akzeptierte alle Pfade, so/home/USER/.ssh/id_rsa
und ohne Phrasenssh-copy-id -i /home/USER/.ssh/id_rsa.pub USER@BmachinesIP
, Passwort eingegeben und Massage bekommen
Versuchen Sie nun, sich in die Maschine einzuloggen
Also scheint alles in Ordnung zu sein.
Aber als ich versuchte, eine Verbindung ssh USER@BmachinesIP
herzustellen, wurde ich nach einem Passwort gefragt. Ich habe versucht, das Protokoll zu sehen und bin gelaufen. ssh -vvv USER@BmachinesIP
Hier ist ein Teil der Ausgabe:
debug1: Authentications that can continue: publickey,password
debug3: start over, passed a different list publickey,password
debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering public key: /home/USER/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug1: Trying private key: /home/USER/.ssh/id_dsa
debug3: no such identity: /home/USER/.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
USER@BmachinesIP's password:
Kann mir jemand sagen, was ich falsch gemacht habe oder was ich ändern sollte? Vielleicht liegt das Problem in den Berechtigungen, hier sind sie:
auf einer Maschine:
drwx------ 2 USER USER SIZE DATE TIME .ssh
-rw------- 1 USER USER 1675 2011-10-31 14:36 id_rsa
-rw-r--r-- 1 USER USER 413 2011-10-31 14:36 id_rsa.pub
und auf B-Maschine:
drwx------ 2 USER defaultGroup SIZE DATE TIME .ssh
-rw------- 1 USER defaultGroup SIZE DATE TIME authorized_keys
quelle
chmod o-w ~/; chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
, dann funktioniert es. Von der Antwort von Maxime R. von hier kopiertGleiches Problem für mich Neuinstallation von CentOS7.
1. Überprüfen Sie die Berechtigungen für das Ausgangsverzeichnis und die Berechtigungen ~ / .ssh und ~ / .ssh / authorized_keys (gemäß @erik).
2. Überprüfen Sie die Einstellungen für / etc / ssh / sshd_config && service sshd restart (nach jeder Bearbeitung). Nützlich: Versuchen Sie "LogLevel VERBOSE" in sshd_config.
Ich habe immer noch eine Passwortabfrage erhalten, nachdem ich alles überprüft habe, was in Ordnung war.
Führen Sie den SSH-Client mit -vvv-Protokollen aus:
Serverprotokolle (/ var / log / secure):
Der SSH-Server sendet keine weiteren Fehlerinformationen an den Client, da dies ein Sicherheitsrisiko darstellen würde.
Wenn ich sshd auf einem anderen Port ausgeführt habe 'sshd -p 5555 -d'. Der Schlüssel hat funktioniert. Passwortloses Login ok. WTF?
Dann habe ich selinux deaktiviert (setze SELINUX = deaktiviert in / etc / selinux / config) und neu gestartet. Das passwortlose Login funktionierte dann einwandfrei.
Meine aktuellen Einstellungen für sshd_config:
Es wäre also schön zu wissen, ob wir in Selinux etwas Kleines ändern könnten, damit das passwortlose SSH-Login funktioniert. Kann jemand die Antwort verbessern?
quelle
Die Lösung besteht nicht darin, SELinux zu deaktivieren, sondern die SELinux-Berechtigungen des Benutzerverzeichnisses zu korrigieren. Der Benutzerverzeichniskontext muss auf eingestellt sein
user_home_t
.Überprüfen,
Wenn der Kontext für Ihr Benutzerverzeichnis
user_home_t
anders ist als , würde SELinux SSH über einen öffentlichen Schlüssel für diesen Benutzer nicht in dieses Benutzerverzeichnis zulassen.Reparieren,
Die schlüsselbasierte Anmeldung sollte jetzt funktionieren.
quelle