Ce guide vous montrera comment établir une connexion sécurisée à votre serveur MySQL ou MariaDB distant à partir de votre ordinateur local, en utilisant un tunnel SSH . Ceci est utile si vous souhaitez utiliser des outils d'administration sur votre ordinateur local pour travailler sur votre serveur.
Un tunnel SSH est un tunnel crypté réalisé via une connexion au protocole SSH. Vous pouvez utiliser un tunnel SSH pour communiquer à distance avec la base de données MySQL. Après avoir suivi ces instructions, vous pourrez vous connecter à localhost
sur votre poste de travail à l'aide de votre outil de gestion MySQL préféré. La connexion sera transmise en toute sécurité à votre Linode via Internet.
Remarque MariaDB est un fork de MySQL et est considéré comme un remplacement direct. Bien que ce guide fasse référence à MySQL, il s'applique également à MariaDB.
Prérequis
- MySQL est installé.
- MySQL est configuré pour écouter sur
localhost
(127.0.0.1). Ceci est activé par défaut.
Comment accéder à MySQL à distance en créant un tunnel SSH avec PuTTY
Cette section vous montrera comment créer un tunnel SSH vers MySQL sous Windows, à l'aide de l'outil PuTTY.
Configuration du tunnel
Tout d'abord, vous devez établir une connexion de base à votre Linode :
-
TéléchargerPuTTY.
-
Enregistrez PuTTY sur votre bureau.
-
Double-cliquez sur le fichier PuTTY pour commencer - pas besoin d'installer. Vous verrez la fenêtre suivante :
-
Entrez le nom d'hôte ou l'adresse IP de votre Linode dans le champ Nom d'hôte (ou adresse IP) champ.
-
Dans le menu de gauche, allez dans Connexion -> SSH -> Tunnels .
-
Dans le port source champ, entrez
3306
. -
Dans la Destination champ, saisissez
127.0.0.1:3306
. Voir la configuration finale ci-dessous : -
Cliquez sur Ouvrir pour démarrer la session SSH.
-
Si vous ne vous êtes pas connecté à ce système avec PuTTY auparavant, vous recevrez un avertissement similaire au suivant. Vérifiez que ce serveur est celui auquel vous souhaitez vous connecter, puis cliquez sur Oui :
Remarque
Cet avertissement apparaît parce que PuTTY veut que vous vérifiiez que le serveur auquel vous vous connectez est celui qu'il dit être. Il est peu probable, mais possible, que quelqu'un puisse écouter votre connexion et se faire passer pour votre Linode. Pour vérifier le serveur, comparez l'empreinte de clé affichée dans l'avertissement PuTTY - la chaîne de chiffres et de lettres commençant par ssh-rsa dans l'image ci-dessus - avec l'empreinte digitale de la clé publique de votre Linode. Pour obtenir l'empreinte digitale de votre Linode, connectez-vous à votre Linode via la console Lish (voir la Console dans l'onglet Linode Manager) et en exécutant la commande suivante :
ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key.pub
Les empreintes digitales clés doivent correspondre. Une fois que vous avez cliqué sur Oui , vous ne recevrez plus d'avertissements à moins que la clé présentée à PuTTY ne change pour une raison quelconque ; généralement, cela ne devrait se produire que si vous réinstallez le système d'exploitation du serveur distant. Si vous recevez à nouveau cet avertissement pour le même Linode après que la clé a déjà été mise en cache, vous ne devez pas faire confiance à la connexion et enquêter plus avant.
-
Dirigez votre client MySQL local vers
localhost:3306
. Votre connexion au serveur MySQL distant sera cryptée via SSH, vous permettant d'accéder à vos bases de données sans exécuter MySQL sur une adresse IP publique.
Créer un tunnel SSH sur Mac OS X ou Linux
Cette section vous montrera comment créer un tunnel SSH vers MySQL sur Mac OS X ou Linux.
-
Installez un client MySQL. L'installation du serveur MySQL est préemballée avec une installation du client. Pour installer le client uniquement :
MacOS
brew install --cask mysql-shell
Ubuntu/Debian
sudo apt install mysql-client
-
Ouvrez une invite de commande et exécutez la commande suivante pour ouvrir le tunnel SSH.
ssh [email protected] -L 3306:127.0.0.1:3306 -N
Remplacez <[email protected]> avec votre nom d'utilisateur SSH et le nom d'hôte ou l'adresse IP de votre serveur. La longue chaîne de chiffres dans la commande répertorie l'adresse IP locale, le port local, l'adresse IP distante et le port distant, séparés par des deux-points ( : ).
-L
- lie un port local à l'hôte distant post.-N
- signifie rediriger les ports.Remarque
Si vous utilisez déjà un serveur MySQL local sur votre poste de travail, utilisez un port local différent (3307 est un choix courant). Votre nouvelle commande ressemblerait à ceci :
ssh [email protected] -L 3307:127.0.0.1:3306 -N
-
Ouvrez une nouvelle fenêtre de terminal. Dirigez votre client MySQL local vers
127.0.0.1:3306
avec le nom d'utilisateur et le mot de passe du serveur MySQL.MacOS
mysqlsh --host=127.0.0.1 --port=3306 -u user -p
Ubuntu/Debian
mysql --host=127.0.0.1 --port=3306 -u user -p
Votre connexion au serveur MySQL distant sera cryptée via SSH, vous permettant d'accéder à vos bases de données sans exécuter MySQL sur une adresse IP publique.
-
Lorsque vous êtes prêt à fermer la connexion, émettez un CTRL-C commande ou fermez la fenêtre d'invite de commande. Cela fermera le tunnel SSH.
Connexions SSH persistantes
Si vous avez besoin d'un tunnel SSH persistant, pensez à utiliser autossh. autossh démarre et surveille une connexion SSH, et la redémarre si nécessaire.
Plus d'informations
Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.
- Utiliser PuTTY
- Documentation MySQL
- Documentation MariaDB
- autossh