SSH Port Forwarding
In diesem Fall könnte man Anschluss nach vorn db_server: 3306 bis web_server: 3306. Dann würde es so aussehen, als würde eine lokale MySQL-Datenbank auf dem Web-Server laufen, die auf Port 3306 horcht. Allerdings wird localhost: 3306 auf dem Webserver tatsächlich sicher zu localhost: 3306 auf dem Datenbankserver weitergeleitet.
Um dies einzurichten, benötigen Sie ein Passwort-loses Schlüsselpaar, damit der SSH-Tunnel automatisch gestartet werden kann. Gehen Sie wie folgt vor:
db_serv$ ssh-keygen -t rsa
db_serv$ scp .ssh/id_rsa.pub webserver:
web_serv$ cd ~; mkdir .ssh
web_serv$ cat id_rsa.pub >> .ssh/authorized_keys2
web_serv$ chmod -R go-rwx .ssh; rm id_rsa.pub
db_serv$ ssh webserver
Der letzte Befehl sollte lassen Sie sich von dem Datenbankserver SSH, ohne ein Passwort bereitstellt. Das Schlüsselpaar führt die Authentifizierung durch.
Der Befehl einen SSH-Tunnel zu öffnen ist:
db_server $ ssh -f -q N -R3306: db_server: 3306 Webserver
Sie können dann lokalen Datenbankzugriff auf dem Webserver testen. Sie müssen die Berechtigungen in der MySQL-Datenbank für den Benutzer und das Kennwort, die Sie verwenden, korrekt festlegen.
web_serv $ mysql -h 127.0.0.1 -P 3306 -u user -p db_name
Sie werden wahrscheinlich die 'ssh' Zeile über zu /etc/rc.d/rc.local hinzufügen möchten (auf Red Hat), damit der Tunnel bei Neustarts geöffnet wird. Denken Sie daran, dass Ihr Web-App nicht auf die Datenbank zugreifen kann, wenn der Tunnel ausfällt.
gehört auf serverfault.com! –