it-swarm.com.de

ssh-copy-id - Berechtigung verweigert (publickey)

Ich möchte einen SSH-Tunnel zum MySQL-Server einrichten, der sich auf einem Computer mit einer virtuellen Maschine befindet. Auch der Tunnel muss funktionieren, wenn die Maschine neu gestartet wird.

Nehmen wir also an, A ist ein Computer mit Linux-Software. B - Virtuelle Maschine in Computer A.

MySQL ist in B.

C - ist eine virtuelle Maschine in Computer A, die in B eine Verbindung zu MySQL herstellen möchte.

Jetzt durch diesen Artikel: http://www.thegeekstuff.com/2008/11/3-steps-to-perform-ssh-login-without-password-using-ssh-keygen-ssh-copy-id /

Ich versuche, den öffentlichen Schlüssel auf den Remote-Server zu kopieren. Ich denke, ich muss es auf Computer A kopieren.

ssh-copy-id -i id_rsa.pub.bak [user]@[IP of A] -p [port of A]
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Jetzt habe ich versucht, die Passphrase der Datei id_rsa.pub.bak einzugeben. Es bestritt.

Dann sehe ich, dass der Schlüssel in /home/[user‹/.ssh/id_rsa verwendet wird, der sich von dem öffentlichen Schlüssel unterscheidet, den ich zu kopieren versuche. Ich meine natürlich, dass der private Schlüssel anders ist, aber ich meine, ich kopiere den öffentlichen Schlüssel eines anderen Privat Schlüssel. Also habe ich versucht, eine Passphrase davon zu verwenden. Auch verweigert.

Wie kann ich debuggen, warum die Passphrase verweigert wird?

Update

Basierend auf Kommentaren habe ich eine neue öffentliche Datei namens id_rsa.pub erstellt, in der jetzt alles in einer Zeile steht

und laufen und trotzdem Fehler bekommen.

ssh-copy-id -i id_rsa.pub [Host and port] -vvv
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Update

Überprüfte die Berechtigungen für den Ordner .ssh und die Datei authorized_keys auf dem A-Computer. Sie sind 700 und 600, sodass der Kommentar besagt, dass sie gut sind.

Update

Es wurde versucht, die Kennwortauthentifizierung auf einem Computer mit Ja festzulegen und den Dienst neu zu starten. Neustart wie durch die Antwort hat nicht funktioniert, es schrieb sshd nicht erkannt, also habe ich neu gestartet mit:

Sudo /etc/init.d/ssh restart

Versuchen Sie dann erneut auf dem C-Computer, auf einen A-Computer zu kopieren.

ssh-copy-id -i id_rsa.pub [[email protected]] -p [port] -v

und immer noch das gleiche:

Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).

Wenn ich den Schlüssel manuell in autorisierte Schlüssel kopiere, sehe ich, dass der öffentliche Schlüssel bereits vorhanden ist, genau wie ich ihn kopieren möchte. Ich fragte meinen Kollegen, er sagte, er habe es nicht kopiert. Ich verstehe also nicht einmal, wie es dort sein kann.

Ok, wenn es da ist, wäre es gut, aber wenn ich dort bleibe, kann ich mich nicht mit ssh verbinden, ohne eine Passphrase einzugeben. Aber ich konnte mich mit der Eingabe der Passphrase verbinden. Hier stimmt also eindeutig noch etwas nicht. Und der Schlüssel, den ich zu kopieren versuche, ist mit leerer Passphrase. Als ich mich mit ssh verband, gab ich eine Passphrase ein, die nicht leer war.

Derselbe öffentliche Schlüssel kann keine leere Passphrase und keine leere Passprhase akzeptieren, was sinnvoll ist. Aber warum ist der öffentliche Schlüssel, den ich hochladen möchte, der gleiche wie der in der Datei "authorized_keys", wenn die Passphrasen unterschiedlich sind? Ich habe nicht jedes einzelne Zeichen überprüft, aber es ist unwahrscheinlich, dass die Tasten so ähnlich sind, dass Anfang und Ende gleich sind, selbst wenn die Passphrase meiner Meinung nach unterschiedlich ist.

31
Darius.V

Endlich das Problem gefunden.

Eigentlich musste ich den öffentlichen Schlüssel nicht kopieren. Der gleiche öffentliche Schlüssel gilt für beide privaten Schlüssel - mit und ohne Passphrase. Ich dachte, ich hätte einen privaten Schlüssel ohne Passphrase, aber eigentlich nicht. Ich hatte nur .ppk ohne Passphrase. Das war Misskommunikation. Also hat ein Mitarbeiter einen privaten Schlüssel ohne Passphrase erstellt und so konnte ich mich jetzt mit ssh ohne Passphrase anmelden. Ich habe gelesen, dass es schlecht ist, ohne Passphrase zu haben, aber ein Mitarbeiter sagt, dass es in Ordnung ist. Ich brauchte ohne Passphrase, weil ich Shell-Skript beim Neustart ausführen muss - ich möchte Autossh beim Neustart des Computers starten.

Wenn Sie sich also ohne Passphrase anmelden möchten, überprüfen Sie diesmal, ob Ihr privater Schlüssel wirklich ohne Passphrase ist.

5
Darius.V

Sie müssen sich tatsächlich anmelden, um Ihren Schlüssel zu kopieren. Sie haben keinen Zugriff auf den Remotecomputer (ungültige Schlüssel- und Kennwortauthentifizierung deaktiviert):

Aktivieren Sie die passwd-Authentifizierung in/etc/ssh/sshd_config erneut:

PasswordAuthentication yes

Starten Sie dann den Dienst neu:

service sshd restart

Kopieren Sie Ihren öffentlichen Schlüssel:

ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected] -p PORT
[Enter user password]

Versuchen Sie erneut, sich anzumelden. Es sollte kein Passwort erforderlich sein.

Deaktivieren Sie dann die Kennwortauthentifizierung.

27
Nabil Bourenane

Permission denied (publickey) ist der Remote-SSH-Server, der sagt "Ich akzeptiere nur öffentliche Schlüssel als Authentifizierungsmethode, geh weg".

Das ist Ihre größte Herausforderung: Auf das Remote-System zugreifen. Sobald Sie dies tun können, können Sie Ihren Schlüssel hochladen:

  • Mit ssh-copy-id Können Sie einen anderen Schlüssel angeben, wenn Sie beispielsweise gerade Ihren alten ersetzen.
  • Bearbeiten Sie den ~/.ssh/authorized_keys Des Remote-Benutzers, um Ihren Schlüssel manuell anzuhängen.
12
Oli