Maison >base de données >tutoriel mysql >Comment se connecter en toute sécurité à une base de données MySQL distante via le tunneling SSH en PHP ?

Comment se connecter en toute sécurité à une base de données MySQL distante via le tunneling SSH en PHP ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-27 11:37:10272parcourir

How to Securely Connect to a Remote MySQL Database via SSH Tunneling in PHP?

Établissement de connexions MySQL distantes sécurisées via SSH en PHP

Dans ce scénario, nous rencontrons un défi pour établir une connexion à une base de données MySQL distante en utilisant SSH et PHP. L'erreur « Impossible d'accéder » persiste malgré l'octroi des autorisations nécessaires.

Résoudre le problème

Pour résoudre ce problème, nous utilisons une approche de tunneling SSH. Cela implique de créer une connexion sécurisée au serveur de base de données via un proxy SSH, généralement un serveur Jumpbox. Cette configuration fournit un canal crypté pour l'échange de données, atténuant les risques de sécurité associés à l'exposition directe du serveur de base de données.

Configuration du tunnel SSH

  1. Outils GUI : Pensez à utiliser des outils d'interface utilisateur graphique (GUI) tels que Visual Studio Code ou TablePlus qui offrent une prise en charge intégrée du tunneling SSH. Ils simplifient le processus et améliorent l'expérience utilisateur.
  2. Ligne de commande :

    a. Établissez un tunnel de redirection de port local sur votre poste de travail à l'aide du commutateur '-L' :

    ssh -fNg -L 3307:10.3.1.55:3306 [email protected] 

    Où :

    • 3307 : Port local pour accepter les connexions
    • 10.3.1.55 : Adresse IP du serveur de base de données MySQL distant
    • 3306 : Adresse IP du serveur de base de données MySQL port

    b. Connectez-vous au serveur de base de données via le port local :

    mysql -h 127.0.0.1 -P 3307 -u dbuser -p passphrase

    Où :

    • 127.0.0.1 : Localhost (votre poste de travail)
    • 3307 : Port local établi au pas a
  3. Connexion PHP :

    Une fois le tunnel établi, connectez-vous à la base de données MySQL en utilisant PHP comme suit :

    <?php
       $smysql = mysql_connect("127.0.0.1:3307", "dbuser", "passphrase");
       mysql_select_db("db", $smysql);
    ?>

Supplémentaire Considérations

  • Transférez le trafic vers une adresse interne sur votre réseau distant pour améliorer la sécurité.
  • Utilisez une clé privée pour l'authentification au lieu de mots de passe.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn