Tunel SSH pour accès MySQL sur un serveur distant

Voilà un petit pense-bête quand on a besoin d’accéder à un serveur MySQL distant à partir de son poste Linux ou OS X . Cela fonctionne aussi pour tous les autres services selon le même procédé, il faut juste changer les ports en fonction du service désiré.

Donc sur votre poste vous voulez vous connecter en shell à un serveur MySQL en utilisant un tunnel SSH afin de sécuriser vos données et l’accès.

# ssh -f user@monserveurdistant.com -L 3307:localhost:3306 -N

Une fois la connexion ouverte et le tunnel créé, vous avez un port 3307 en local ouvert qui redirige vers le port 3306 du localhost (127.0.0.1) de votre serveur distant.

Le choix des ports est libre bien sûr, mais il ne faut pas utiliser le port du même service, si déjà existant, en local.

Maintenant, il ne vous reste plus qu’à ouvrir un autre shell et vous connecter avec votre application cliente préférée (MySQL par exemple) sur le port 3307 ouvert en local.

# mysql -u moncomptelocal -p -h 127.0.0.1 -P 3307 mabase

Ne pas oublier de fermer le tunnel ouvert précédemment a travers un kill :

# kill $(ps aux | grep ssh| grep 3307| awk '{print $2}')
4.71 avg. rating (92% score) - 7 votes