Mysql
 sql >> Base de données >  >> RDS >> Mysql

Accéder à distance au serveur MySQL via un tunnel SSH

Nous pouvons accéder en toute sécurité à MySQL sur un système distant en connectant MySQL via le tunnel SSH. Ce didacticiel fournit les étapes nécessaires pour se connecter à distance au serveur MySQL via un tunnel SSH à l'aide de Putty sur Windows et SSH sur les systèmes Linux. Il montre comment transférer le port local de MySQL, c'est-à-dire 3306, vers le port distant de MySQL, c'est-à-dire 3306 via le port SSH 22 du système distant. Cela garantit que nous communiquons en toute sécurité avec le serveur distant sur le port 22, en connectant le port local 3306 au port 3306 sur le serveur distant.

Prérequis

Un serveur distant sur lequel un serveur MySQL est installé. Vous pouvez suivre Comment installer MySQL 8 sur Ubuntu 20.04 LTS.

Assurez-vous également que le port 22 est ouvert et que le port 3306 est bloqué par le pare-feu sur le système distant disposant du serveur MySQL. Ce didacticiel suppose également que le serveur MySQL ne s'exécute pas sur le système local. Cela garantit que le port 3306 sur le système local est libre pour la redirection de port.

Nous avons également besoin d'un accès SSH au système sur lequel le serveur MySQL est installé et en cours d'exécution. Nous pouvons soit utiliser le nom d'utilisateur et le mot de passe SSH ou Nom d'utilisateur SSH et la clé pour se connecter au système distant.

Installer Putty sur Windows 10

Nous pouvons utiliser Putty sur les systèmes Windows pour accéder au serveur MySQL installé sur un serveur distant. Si vous utilisez un système basé sur Linux, vous pouvez passer à la section SSH.

Ouvrez la page de téléchargement officielle de Putty pour télécharger le programme d'installation MSI comme indiqué sur la figure 1.

Image 1

Nous pouvons également utiliser l'exécutable Putty sans l'installer. Faites défiler la page de téléchargement pour télécharger le fichier exécutable.

Lancez maintenant Putty. Les options par défaut de Putty devraient être similaires à la figure 2.

Image 2

Connexion sécurisée à MySQL à l'aide de Putty

Cette section décrit les étapes à suivre pour utiliser Putty pour se connecter en toute sécurité à MySQL via le tunnel SSH à partir d'un système distant. Remplissez maintenant les détails de l'hôte distant comme indiqué dans la figure 3.

Image 3

Cliquez également sur Connexion -> SSH -> Tunnels comme indiqué sur la figure 3. Remplissez maintenant les détails de transfert de port SSH comme indiqué sur la figure 4. Le port source doit être défini sur 3306 et Destination doit être défini sur 127.0.0.1:3306 .

Fig 4

Cliquez sur le bouton Ajouter après avoir renseigné le Port source et la Destination. Il mettra à jour les ports redirigés comme indiqué sur la figure 4. Cliquez également sur l'option Auth et choisissez la clé SSH comme indiqué sur la figure 5. Assurez-vous que vous avez généré la clé privée à l'aide de Puttygen.

Image 5

Cliquez maintenant sur le bouton Ouvrir pour ouvrir la connexion. Il affichera l'alerte de sécurité pour la première fois, comme illustré à la Fig 6.

Image 6

Cliquez sur le bouton Oui pour accepter la connexion. Il vous demandera la phrase de passe au cas où vous l'auriez définie lors de la génération de la clé privée. Lors d'une connexion réussie, il affichera les détails du système distant, comme illustré à la Fig 7.

Image 7

Outre la connexion via SSH, il a également transféré le port local 3306 au port 3306 sur le serveur distant. Ne fermez pas Putty car il maintient le tunnel SSH ouvert vers le serveur distant. Lancez maintenant n'importe quel client MySQL et essayez de vous connecter au serveur MySQL distant. J'ai utilisé MySQL Workbench à des fins de démonstration. L'écran d'accueil de Workbench devrait ressembler à la figure 8. Vous pouvez également suivre Utilisation de Workbench pour se connecter à un serveur MySQL distant via un tunnel SSH.

Fig 8

Cliquez maintenant sur l'icône Plus pour créer une nouvelle connexion locale comme indiqué sur la figure 8. Il affichera les options pour ajouter une connexion comme indiqué sur la figure 9.

Image 9

Fournissez un nom de connexion et conservez le nom d'hôte en tant que 127.0.0.1 et le port en tant que 3306, comme illustré à la figure 9. Cliquez maintenant sur Tester la connexion pour tester la connexion au serveur MySQL distant via le tunnel SSH. Il vous demandera un mot de passe comme indiqué sur la figure 10 au cas où vous ne l'auriez pas stocké dans le coffre-fort.

Image 10

Remplissez maintenant le mot de passe et cliquez sur le bouton OK pour tester la connexion. Il devrait afficher un message de réussite en cas de réussite de la connexion, comme illustré à la figure 11.

Image 11

Cliquez maintenant sur le bouton OK pour fermer le message de connexion et cliquez à nouveau sur le bouton OK pour fermer l'assistant de connexion. Il ajoutera la connexion à la bibliothèque de connexions, comme illustré à la figure 12.

Image 12

Cliquez maintenant sur la connexion nouvellement ajoutée. Il doit se connecter au serveur distant et répertorier les bases de données du serveur MySQL distant, comme illustré à la figure 13.

Image 13

Nous pouvons maintenant travailler sur un serveur MySQL distant en utilisant Workbench sur le système local. Fermez également Workbench et Putty pour mettre fin à la connexion après avoir terminé le travail sur le serveur MySQL distant.

Connexion sécurisée à MySQL à l'aide de SSH

Nous pouvons nous connecter au serveur MySQL distant en transférant le port local 3306 au port distant 3306 à l'aide de la commande SSH comme indiqué ci-dessous. Semblable à la section précédente, assurez-vous que le port local 3306 est libre.

Remarques :Les commandes mentionnées ci-dessous ont été testées sur Ubuntu Desktop. Les étapes et les commandes doivent être similaires sur les autres systèmes Linux.

# Shutdown local MySQL - Else use a different local port
sudo service mysql stop

# Install MySQL Client - If required
sudo apt install mysql-client

# Port Forwarding - Command
ssh -N -L 3306:127.0.0.1:3306 [USER]@[SERVER_IP]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i [SSH Key] [USER]@[SERVER_IP]

# Port Forwarding - Example
ssh -N -L 3306:127.0.0.1:3306 [email protected]
# OR
ssh -N -L 3306:127.0.0.1:3306 -i example.pem [email protected]

Les commandes mentionnées ci-dessus ouvrent le tunnel SSH et connectent le port local 3306 au port distant 3306. Nous pouvons maintenant nous connecter au serveur MySQL distant à l'aide du client MySQL. Vous pouvez vous référer à la section précédente pour utiliser MySQL Workbench installé sur le système local.

Reportez-vous également aux Fig 14 et Fig 15 pour ouvrir le tunnel SSH et vous connecter au serveur MySQL distant.

Image 14

Image 15

Résumé

Ce didacticiel a fourni les étapes nécessaires pour se connecter au serveur MySQL distant via un tunnel SSH pour les systèmes Windows et Linux.