Auf meinem Server läuft CentOS 5.3. Ich bin auf einem Mac mit Leopard. Ich weiß nicht, wer dafür verantwortlich ist:
Ich kann mich problemlos über die Kennwortauthentifizierung bei meinem Server anmelden. Ich habe alle Schritte zum Einrichten von PKA durchlaufen (wie unter http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html beschrieben ), aber wann Ich benutze SSH, es weigert sich sogar, eine öffentliche Überprüfung zu versuchen. Befehl verwenden
ssh -vvv user@host
(wobei -vvv die Ausführlichkeit auf das maximale Niveau erhöht) Ich erhalte die folgende relevante Ausgabe:
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
gefolgt von einer Eingabeaufforderung für mein Passwort. Wenn ich versuche, das Problem mit zu erzwingen
ssh -vvv -o PreferredAuthentications=publickey user@host
Ich bekomme
debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred publickey
debug3: authmethod_lookup publickey
debug3: No more authentication methods to try.
Obwohl der Server angibt, die Authentifizierungsmethode publickey zu akzeptieren und mein SSH-Client darauf besteht, wird dies zurückgewiesen. (Beachten Sie das auffällige Fehlen der Zeile "Offering Public Key:" oben.) Haben Sie Vorschläge?
Antworten:
Überprüfen Sie, ob Ihre Centos-Maschine Folgendes hat:
in sshd_config
und stellen Sie sicher, dass Sie im ~ / .ssh / -Verzeichnis des Centos-Computers über die entsprechenden Berechtigungen verfügen.
sollte den Trick machen.
quelle
chmod go-w ~/
wenn es nicht schon so ist.755
(wie Jinyu Liu unten erwähnt)/etc/ssh/ssh_config
Ich hatte ein ähnliches Problem: Der Remote-PC konnte die Authentifizierung mit öffentlichem Schlüssel nicht verwenden, um sich beim CentOs 6-Server anzumelden. Das Problem in meinem Fall betraf SELinux - das Ausgangsverzeichnis des Benutzers, der sich anmeldete, hatte Sicherheitskontexte für Meldungen. Ich habe dieses
restorecon
Problem gelöst, indem ich das Tool folgendermaßen verwendete:quelle
/home
sie normalerweise im Verzeichnislayout enthalten sind/home
.restorecon -Rv /root
1- Überprüfen Sie Ihre / etc / ssh / sshd_config
2- Überprüfen Sie das Sicherheitsprotokoll auf dem Remotecomputer und überprüfen Sie das detaillierte Fehlerprotokoll des sshd-Dämons. zB in meinem Ubuntu
Überprüfen Sie dann den Besitz und die Modi für das Verzeichnis / home / xxx. Möglicherweise müssen Sie dies ausführen
quelle
Stellen Sie sicher, dass Ihre Berechtigungen korrekt sind und die Dateistruktur (insbesondere die Schreibweise) für lokale und Remote-Computer korrekt ist. Die URL, auf die Sie verweisen, gibt alle an, aber es lohnt sich zu überprüfen, ob Ihre Übereinstimmungen vorliegen. Normalerweise verursachen Berechtigungen jedoch einen relevanten Fehler.
Haben Sie überprüft, ob das Kontrollkästchen sshd_config auf Ihrem CentOS 5.3 so eingestellt ist, dass PubkeyAuthentication oder RSAAuthentication zulässig sind?
Überprüfen Sie die SSH-Serverprotokolle auf dem CentOS-System. Möglicherweise werden weitere Informationen bereitgestellt. Ich bin mir nicht sicher, ob CentOS den auf der Blacklist stehenden SSH-Schlüssel überprüft, aber ich habe ssh publickey-Ablehnungen gesehen, die in Bezug auf die -vvv-Ausgabe relativ leise sind, aber die Protokolle haben ziemlich klar erklärt, was los war
quelle
Verstanden! Es stellte sich heraus, dass es sich um ein clientseitiges Problem handelte. (Ich denke, dass ein serverseitiges Problem zu einer nützlicheren Debug-Ausgabe geführt hätte.) Aus mir unbekannten Gründen hatte die Datei / etc / ssh_config auf meinem Mac die Zeile
Ich habe diese eine Zeile auskommentiert und jetzt funktioniert alles gut.
quelle
Stellen Sie neben den Modi für Dateien / Verzeichnisse sicher, dass der Eigentümer korrekt ist! Ein Benutzer muss sein eigenes Basisverzeichnis (.ssh /) und die darin enthaltenen Dateien besitzen.
Ich musste rennen
chown -R $user:$user /home/$user
, um meine SSH-Fehler zu überwinden.quelle
Überprüfen Sie auch, ob ein Schlüssel automatisch bereitgestellt werden kann oder nicht, verwenden Sie -i path / to / key, wenn dies nicht der Fall ist oder nur zum Testen
quelle
Klingt für mich nach einem Konfigurationsproblem. Wie Daniel vorschlug, sollten zwei Dinge überprüft werden:
$HOME/.ssh/authorized_keys
sind lesbar. undquelle
Überprüfen Sie den Benutzernamen, mit dem Sie sich anmelden möchten. Standardmäßig ist dies Ihr Benutzername auf dem lokalen Computer.
quelle
Die Ausgabe des Clients wie in
ssh -v
zeigt an, dass an einem bestimmten Punkt im Protokoll ein Problem vorliegt, der Client jedoch nicht über die Ursache informiert wird, wenn es auf etwas auf dem Server zurückzuführen ist. Überprüfen Sie die Server-Protokolldateien, um herauszufinden, was nicht stimmt. Sie müssen wahrscheinlich sein,root
um über die entsprechenden Berechtigungen zu verfügen. Bei einersshd
Konfiguration zum Anmelden bei syslog finden Sie die Nachrichten möglicherweise in/var/log/secure
. Wie diese:Der Grund war in diesem Fall ein (dummer) Ausfall
default
von0002
. Das heißt, Schreibzugriff für die Gruppe. (Gruppenname = Benutzername, aber dennoch.) Der SSH-Daemon vertraut keinen Dateien, die von anderen als dem Benutzer manipuliert werden können (undroot
natürlich auch nicht). Sie können das Problem mit lösenchmod
.quelle
Ich war gerade in dem gleichen Problem gefangen, mit Fedora Core 16 auf Cent 5.5 zuzugreifen
Die Protokolle und die ausführliche Beschreibung sahen genauso aus
Das Problem war, dass der öffentliche Schlüssel gefälschte Daten erhalten, neu generiert und im SSHD-Server abgelegt hat. SSHD-Client sendet die Schlüsselinformationen, wird jedoch vom Server nicht erkannt (entspricht keinem der Schlüssel in Authorized Keys).
quelle
Ein weiterer davon gebissen. Nach langer Suche stellte sich heraus, dass ich explizit den öffentlichen Schlüssel (mit der Option -i) anstelle des privaten Schlüssels ssh eingab. Doh!
quelle