Ich versuche, über SSH-Tunneling von einem unserer Web-App-Server mit MySQL Workbench eine Verbindung zu meiner Datenbank herzustellen. Hier ist die Grundkonfiguration; Beachten Sie, dass ich aus Sicherheitsgründen einige Werte im Screenshot geändert habe.
Das Problem ist, dass jedes Mal, wenn ich versuche, eine Verbindung über einen SSH-Tunnel von einem unserer App-Server herzustellen, die folgende Fehlermeldung angezeigt wird:
Verbindung zu us-east-1.amazonaws.com über den SSH-Tunnel unter computer.amazonaws.com mit dem Benutzer social_shop_prod fehlgeschlagen. Es kann keine Verbindung zum MySQL-Server unter 127.0.0.1 hergestellt werden.
Wenn ich jedoch dieselben Anmeldeinformationen über SSH über die folgende Befehlszeile verwende:
mysql -u social_shop_prod -h us-east-1.amazonaws.com -p
Ich kann erfolgreich eine Verbindung herstellen und die interaktive MySQL-Eingabeaufforderung erhalten.
Ich habe hier mit dem Rest meines Entwicklungsteams gesprochen und keiner von uns kann herausfinden, warum ich mit Workbench nicht über SSH von unseren App-Servern tunneln kann. aber wenn ich SSH zu einem unserer App-Server und Verbindung zu MySQL über die Befehlszeile; Ich kann mich erfolgreich verbinden.
Und warum wird versucht, eine Verbindung über 127.0.0.1 herzustellen? Das habe ich in der Konfiguration nicht angegeben; Meine Hosts-Datei leitet die unten gezeigten Domains auch nicht auf diese IP um.
Jede konstruktive Eingabe wird sehr geschätzt.
quelle
Ich habe mich fast 2 Wochen lang mit diesem Problem beschäftigt, jetzt habe ich es geschafft, es zu beheben. Ich werde es hier posten, damit mehr Leute es versuchen können.
Ok, ich verwende OpenSSH (Win10 native) und Workbench 8.
Schritt für Schritt:
1. Fügen Sie dem Agenten Ihre SSH-Hostschlüssel mit ssh-add hinzu.
2. Generieren Sie die Schlüsselpaare mit ssh-keygen. In meinem Fall werden diese Dateien automatisch
Users/myUser/.ssh
gemäß den Installationskonfigurationen aufgerufen.3. Fügen Sie den öffentlichen Schlüssel ohne Erweiterungen zur Datei authorized_keys hinzu (die sich in meinem Fall in Ihrem Serverinstallationspfad befinden muss
Windows/System32/OpenSSH/.ssh
).4. Fügen Sie die generierten Schlüssel, die Sie gerade erstellt haben, mit ssh-add zum Agenten hinzu.
Die obigen Schritte sind so ziemlich die Konfiguration eines Befehlszeilen-SSH-Servers, von dem ich herausfinde, dass das OP, das bereits für seine Verbindung ausgeführt wurde, über das Terminal funktioniert. Um MySQL Workbench 8 zu konfigurieren, machen Sie genau das Gleiche, außer dass Sie die Datei private_key.pem in ein OpenSSH-Format konvertieren müssen, bevor Sie sie nach
Users/myUser/.ssh
und verschiebenOpenSSH_instalation_path/.ssh
User/myUser/.ssh
undOpenSSH_instalation_path/.ssh
OpenSSH_instalation_path/.ssh
Ordner ein.User/myUser/.ssh
.UPDATE: In Ihrer Datei sshd_config müssen Sie Folgendes festlegen:
PermitRootLogin ohne Passwort
PubkeyAuthentication ja
PasswordAuthentication nein
PermitEmptyPasswords nein
AllowTcpForwarding ja
LESEN SIE BITTE:
Ich bin ein unerfahrener Analyst. Wenn also ein fortgeschrittener Benutzer weiß, welcher der beiden .ssh-Ordner der richtige ist, teilen Sie uns dies bitte mit. Ich finde das OpenSSH diesbezüglich etwas mehrdeutig.
Dies hat bei mir funktioniert, als eine lokale Entwicklungsumgebung nur mit localhost eingerichtet wurde. Nur zu Lernzwecken.
Möglicherweise möchten Sie MySQL Workbench-Benutzern myUser @ localhost hinzufügen, bevor Sie die Verbindung testen.
Wenn es wirklich gebraucht wird, kann ich Bilder hinzufügen.
quelle
In meinem Fall musste das Problem behoben werden , dass ich zu einem gültigen Domänennamen oder einer gültigen IP anstelle eines benutzerdefinierten Hosts zurückkehren musste.
Benutzerdefinierte Hostauflösung fehlgeschlagen (
/etc/hosts
)Ich arbeite mit einem lokalen Host-Auflösungsmechanismus, der Folgendes definiert:
Aus irgendeinem Grund mit
MySQL 5.2.47
aufLinux Mint 14 (Nadia)
dem ähneltUbuntu 12.10 (Quantal)
dem Bewältigungsmechanismus nicht funktioniert .Lösung
Wechseln Sie einfach zu einem gemeinfreien Namen ,
my-website.com
um das Problem zu beheben.quelle
Hier finden Sie eine Liste der Ressourcen für die Verbindung zu verschiedenen Zielen (Amazon RDS, Amazon EC2, Windows Azure und andere): http://forums.mysql.com/read.php?152,252640,252640#msg-252640 .
quelle
Ich hatte ein ähnliches Problem, und dies mag offensichtlich sein, aber überprüfen Sie Ihre Firewall-Regeln in AWS. Ich habe einen IP-Bereich festgelegt, um Verbindungen von außen einzuschränken. Und die IP in meinem Büro hat sich geändert, sodass sie außerhalb des IP-Bereichs lag. Mein Kollege in einem anderen Büro konnte immer noch eine Verbindung herstellen, daher dachte ich, das Problem liegt auf meinem PC, aber das Problem lag bei den Firewall-Regeln in AWS. Hoffe das hilft jemandem :)
quelle