Dies ist mein letzter Ausweg. Ich habe hier stundenlang versucht, das Problem herauszufinden.
Hier ist der Deal: Ich habe meinen privaten Schlüssel von Maschine 1 auf Maschine 2 kopiert. Maschine Nr. 1 kann mit meinem öffentlichen Schlüssel über ssh eine Verbindung zu einem Server herstellen, aber Maschine Nr. 2 gibt die folgende Ausgabe aus, wenn versucht wird, eine Verbindung zum Server herzustellen:
$ ssh -vvv -i /home/kevin/.ssh/kev_rsa [email protected] -p 22312
OpenSSH_5.3p1 Debian-3ubuntu6, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.1.244 [192.168.1.244] port 22312.
debug1: Connection established.
debug3: Not a RSA1 key file /home/kevin/.ssh/kev_rsa.
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug3: key_read: missing keytype
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
debug3: key_read: missing whitespace
...
Permission denied (publickey).
Es gibt offensichtlich mehr Debug-Ausgaben, die ich weggelassen habe, und ich kann sie auf Anfrage bereitstellen. Ich bin jedoch überzeugt, dass meine private Schlüsseldatei nicht gefällt.
Ich hatte auch den Verdacht, dass es damit zu tun hat, wie ich es von Maschine 1 auf Maschine 2 kopiert habe. Ich habe den Text vom privaten Schlüssel auf ein Flash-Laufwerk kopiert / eingefügt. Dies könnte jedoch das Problem sein, wenn ich diese Methode in einer anderen funktionierenden privaten Schlüsseldatei dupliziert und einen Unterschied zum Original gemacht habe, zum kopierten / eingefügten, sind sie identisch.
Ich habe damit zu kämpfen. Wenn ich nur ein bisschen mehr Informationen darüber bekommen könnte, warum mein Schlüssel nicht gefällt, könnte ich ihn sicher reparieren. Hat jemand irgendwelche Ideen dazu? Gibt es irgendwo Metadaten, die ssh mitteilen, dass eine Datei tatsächlich ein RSA-Schlüssel ist?
quelle
/var/log/auth.log
der Server?Antworten:
Nach meiner Erfahrung sind die beiden häufigsten schlüsselbasierten Authentifizierungsfehler
$HOME/.ssh
VerzeichnisDateiberechtigungen
OpenSSH unternimmt viel, um Sie vor sich selbst zu schützen. Dies wirkt sich am meisten auf den Benutzer aus, indem strenge Einschränkungen für den Zugriff auf Ihren lokalen SSH-Ordner erzwungen werden. Sie möchten wirklich nur, dass Sie und nur Sie auf das Verzeichnis zugreifen. Nun, und jeder mit uid = 0, aber daran führt kein guter Weg vorbei. Sie müssen also einfach Ihre Berechtigungen ändern:
chmod -R go-rwx ~/.ssh
Dadurch werden allen Benutzern außer dem Eigentümer, dh Ihnen , Lese-, Schreib- und Ausführungsrechte für alle Dateien unter dem Verzeichnis .ssh entzogen .Probleme mit autorisierten Schlüsseln
Die Datei, die Ihren öffentlichen Schlüssel enthält, muss normalerweise
$HOME/.ssh/authorized_keys
in ein ganz bestimmtes Formular passen, damit SSH versteht, wie der private Schlüssel akzeptiert wird. Jeder Schlüssel muss aus mindestens 2 Feldern bestehenJeder Schlüssel muss zusammen mit all seinen Optionen und Komponenten in dieser Datei pro Zeile aufgeführt sein. Da die Tasten in der Regel sehr lang sind, werden sie häufig umbrochen und als zwei Zeilen auf Ihrem Terminal angezeigt. Dies führt manchmal zu Chaos beim Versuch, zu kopieren / einzufügen, da manchmal eine oder mehrere Zeilenumbrüche dort eingefügt werden, wo sich der Schlüssel auf Ihrem Bildschirm befindet. Das Beheben dieses Problems kann für einen Shell-Anfänger etwas schwieriger sein.
Ausführen versuchen
wc -l ~/.ssh/authorized_keys
Hiermit wird die Anzahl der Zeilen in der Datei ausgedruckt. Vergleichen Sie diese Anzahl mit der Anzahl der Schlüssel, die Sie in der Datei erwarten. Wenn Sie nur diesen einen Schlüssel akzeptieren, können Sie auch einfach eine Kopie der öffentlichen Schlüsseldatei erstellen, da diese das gleiche Format wie Ihre autorisierte Schlüsseldatei hat. So etwas wie
scp -p ~/.ssh/kev_rsa.pub remotehost:~/.ssh/authorized_keys
oder, wenn Sie Ihren öffentlichen Schlüssel auf demselben System haben, können Sie dies tun
cat ~/.ssh/kev_rsa.pub >> ~/.ssh/authorized_keys
Überprüfen Sie außerdem in der Protokolldatei auf dem Remote-Host, ob dort Fehler gemeldet werden. Die Dateien werden höchstwahrscheinlich entweder
/var/log/secure.log
oder sein/var/log/auth
.quelle
make a copy of the private key file
sollte öffentlicher Schlüssel sein (wie in Ihren Beispielen gezeigt)Sie müssen jedoch wahrscheinlich ein neues Schlüsselpaar generieren, damit Computer 2 eine Verbindung zum Server herstellen kann. Oft listet der öffentliche Schlüssel den Benutzer- und Computernamen derjenigen auf, die sie generiert haben. Dies sollte in Ihrer Datei "authorized_keys" auf dem Server ersichtlich sein.
quelle
Die von Ihnen angegebenen Debug-Meldungen bedeuten, dass eine Datei mit privatem Schlüssel unter der Annahme gelesen wird, dass es sich tatsächlich um eine Datei mit öffentlichem Schlüssel / autorisiertem Host handelt. Dies ist möglicherweise kein schwerwiegender Fehler (ich erhalte solche Meldungen auch für funktionierende Verbindungen). Sagt es etwas über "Angebot" oder "Wir haben gesendet"?
quelle
Versuchen Sie, die SSH-Konfigurationsdateien zwischen den beiden Servern zu vergleichen.
dh. so etwas wie cat / etc / sshd_config
quelle