Accéder à une BDD distante en ssh avec Mysql Workbench

Si vous avez installé une base de données sur votre home server, vous trouverez certainement pratique de pouvoir y accéder avec MySQL Workbench à partir de votre poste local.

Créer un utilisateur permettant l’accès distant sur votre serveur MySQL

Si vous venez d’installer votre base de données, par défaut les utilisateurs qui y sont présents (dont le l’admin root) n’ont que des permissions d’accès « localhost », c’est-à-dire qu’ils ne peuvent se connecter à votre BDD qu’en local.
Par exemple, si vous cherchez à vous connecter à votre instance en SSH en root à partir d’une IP ‘192.168.0.13’, votre serveur verra la connexion entrante comme « root@192.168.0.13 ». L’utilisateur root n’ayant par défaut que des droits sur « root@localhost », la connexion sera refusée et vous verrez la ligne suivante dans fichier /var/log/mysql/error.log :
[Warning] Access denied for user 'root'@'localhost'

Nous allons donc créer un utilisateur qui pourra se connecter de n’importe où.

  • Sur votre serveur local, accéder à ligne de commande mysql en vous connectant en root :
    sudo mysql -u root -p
  • Créez un utilisateur que vous utiliserez pour les accès distants :
    CREATE USER 'admindistant'@'%' IDENTIFIED BY 'motDePasse';
  • Donnez-lui tous les droits :
    grant all privileges on *.* to 'admindistant'@'%' with grant option;
  • (Facultatif) Vous pouvez vérifier que l’utilisateur a bien été créé et les droits correctement assignés avec les commandes :
    select user,host from mysql.user;
    show grants for admindistant;

Configurer MySQL Workbench

MySQL Workbench permet de configurer directement votre connexion distante.

  • Cliquer sur « Add connection »
  • Dans la fenêtre qui s’affiche, sélectionnez « Standard TCP/IP over SSH » dans les méthodes de connexion.

Remplissez les différents champs comme suit :

  • SSH Hostname : l’adresse IP de votre serveur (si vous utilisez le port SSH 22 par défaut pas besoin de le préciser)
  • L’identifiant de l’utilisateur qui vous permet la connexion SSH à votre serveur
  • SSH Password: le mot de passe correspondant à votre utilisateur si vous souhaitez le stocker
  • MySQL Hostname : pour une installation MySQL standard ce sera 127.0.0.1
  • MySQL Server Port : pour une installation MySQL standard ce sera 3306
  • Username : l’identifiant de l’utilisateur créé précédemment
  • Password : le mot de passe utilisateur si vous souhaitez le stocker

Cliquez sur Test Connection pour vérifier que les paramètres sont bons. Si tout s’est bien passé, vous avez maintenant accès à votre BDD comme si vous étiez sur la machine distante.

Connexion SSH par clé privée

Si vous avez suivi l’article Configurer SSH pour s’authentifier par clé privée, vous aurez une petite modification à effectuer pour que votre clé soit reconnue par MySQLWorkbench. En effet, ce dernier ne fonctionne qu’avec des clés au format OpenSSH (.pem).

Vous pouvez convertir une clé RSA existante au format PEM avec cette commande (je vous recommande de faire une copie de votre clé au préalable par sécurité) :
ssh-keygen -p -m PEM -f id_rsa

Partager sur :
Étiquettes: