Datenbank mit SSH Tunneln

12/20/2016 18:54 ThaRielFliege#16
Ja sollte so problemlos gehen, hatte das schon bei mehreren Servern gemacht.
12/21/2016 09:33 DevBlade#17
Macht es doch ganz einfach:

Schließt den root-user aus, so dass er sich nicht mehr in der Datenbank und auf dem Server anmelden kann, erstellt einen weiteren Benutzer und meldet euch nur noch mit dem neu angelegten an.
12/21/2016 11:42 Spartan#117#18
Hi!

Erstmal musst du dem MySQL-Server sagen, dass dieser sich beim Socket nur an localhost (127.0.0.1) bindet.

Dies geht in der serverseitigen my.cnf. (/etc/my.cnf oder /usr/local/etc/my.cnf)
In der [mysqld] Sektion diese Zeile hinzufügen:
Code:
bind-address = 127.0.0.1
*service mysql-server restart* nicht vergessen!

Nun ist der Server nur noch über die Adresse 127.0.0.1 erreichbar, welche natürlich nur lokal korrekt gerouted wird. Die MySQL-User Tabelle brauchst du dabei nicht anzupassen, da der Server keine eingehenden Verbindungen von ausserhalb empfangen kann. (in einigen Fällen solltest du trotzdem die Host-Spalten auf 127.0.0.1 setzen, falls du einen Fehler beim Verbinden kriegst)

Falls du Navicat für dein Datenbankmanagement verwendest, kannst du dies in der SSH-Spalte bei den Verbindungsinformationen einstellen. Wichtig ist, dass du beim MySQL-Host nun 127.0.0.1 anstelle der normalen IP-Adresse angibst. Die SSH-Daten sollten die selben wie bei z.B. PuTTY sein, falls du dies nicht anders handhabst.

Der MySQL-Server kann nicht explizit nur getunnelte Verbindungen akzeptieren, da er nicht weiß ob eine Verbindung getunnelt wird. Hierfür ist der SSH-Daemon zuständig. Wenn du den MySQL-Server jedoch an localhost bindest, werden keine Pakete von ausserhalb an den MySQL-Server weitergereicht - daher der selbe Effekt.
12/21/2016 14:19 xCPx#19
Quote:
Originally Posted by Chaosnightx3 View Post
Das weiß ich, aber irgendwie irritiert mich das langsam:

In einem Forum steht man mal soll mit so nem ssh - localhost:3306 etc etc eine SSH session öffnen, hier wird es kurz und knapp beschreiben, aber dann spuckt mein Mysql folgenden Fehler aus:

80070007; SSH Tunnel: Server does not support diffie-hellman-group-sh1 for keyexchange

Akzeptiert er meinen Key nicht?
Is n Problem von Navicat, Navicat unterstützt für SSH Tunnel nur ne uralte variante, die seit FreeBSD 9 oder 10 in FreeBSD nichtmehr unterstützt wird.
12/21/2016 19:41 epvptrucks20#20
D.h.
127.0.0.1 und daten in der Mysql Verbindung mit bind 127.0.0.1
und SSH Tunnel häckchen rein und mit root daten einloggen ?
So das wenn ich navicat aufmache über den SSH Tunnel quasi Local auf die Datenbank zugreife richtig ?
12/22/2016 02:27 Chaosnightx3#21
So sollte es sein, ja.

xcpx... joa gut und was soll ich nun machen? Nen anderen MySQL Client nehmen? :d (10.3 Freebsd und mysql 5.7)
12/23/2016 20:37 Spartan#117#22
@[Only registered and activated users can see links. Click Here To Register...]: Genau. Du kannst dir dafür auch einen separaten SSH-Benutzer anlegen mit eingeschränkten Rechten. Mit einem modernen OpenSSH-Server und PubKey Authentifizierung als einzige Anmeldemethode kannst du aber auch problemlos root nehmen.

@[Only registered and activated users can see links. Click Here To Register...]: Navicat updaten sollte ausreichen.
12/24/2016 15:32 Chaosnightx3#23
Klappte perfekt, bin via SSH Tunnel drin. :3 Danke! :D
01/16/2017 07:37 epvptrucks20#24
Alles klar super danke :D