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.
Nun zu diesem 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 es den Schlüssel in /home/[userowntown/.ssh/id_rsa verwendet, der sich vom öffentlichen Schlüssel unterscheidet, den ich zu kopieren versuche. Ich meine natürlich, dass der private Schlüssel sich unterscheidet, aber ich meine, dass ich den öffentlichen Schlüssel eines anderen kopiere Privat Schlüssel. Also habe ich versucht, ein Passwort dafür zu verwenden. Auch bestritten.
Wie kann ich debuggen, warum die Passphrase verweigert wird?
Aktualisieren
Basierend auf Kommentaren habe ich eine neue öffentliche Datei namens id_rsa.pub erstellt, in der sich jetzt alles in einer Zeile befindet
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).
Aktualisieren
Überprüfte die Berechtigungen für den Ordner .ssh und die Datei authorized_keys auf dem A-Computer - sie sind 700 und 600, so dass der Kommentar besagt, dass sie gut sind.
Aktualisieren
Versucht, Kennwortauthentifizierung Ja auf einem Computer festzulegen und den Dienst neu zu starten. Neustart wie von der Antwort nicht funktioniert, schrieb sshd nicht erkannt, so dass ich neu gestartet mit:
sudo /etc/init.d/ssh restart
Versuchen Sie dann erneut auf einem C-Computer, auf einen A-Computer zu kopieren.
ssh-copy-id -i id_rsa.pub [user@host] -p [port] -v
und immer noch dasselbe:
Enter passphrase for key '/home/[user]/.ssh/id_rsa':
Permission denied (publickey).
Wenn ich den Schlüssel manuell nach authorized_keys kopiere, sehe ich, dass der öffentliche Schlüssel bereits vorhanden ist, den ich auch kopieren möchte. Ich fragte meinen Kollegen, er sagte, er habe es nicht kopiert. Also verstehe ich nicht mal, wie es dort sein kann.
Ok, wenn es dort 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 verbunden habe, habe ich eine Passphrase eingegeben, die nicht leer war.
Der gleiche öffentliche Schlüssel kann keine leeren Passphrasen und keine nicht leeren Passphrasen akzeptieren, was Sinn macht. Aber warum ist dann der öffentliche Schlüssel, den ich hochzuladen versuche, der gleiche wie der in 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, auch wenn die Passphrase meiner Meinung nach unterschiedlich ist.
id_rsa
du? Ich würde erwartenssh-copy-id
, mit einer Fehlermeldung, wie Sie es nennen, zu scheitern, da es eine Datei erwartet, die mit endet.pub
. Wie deine endet.bak
würde es wohl nutzenid_rsa.pub.bak.pub
.