Maison >base de données >tutoriel mysql >Comment connecter en toute sécurité Python à un serveur MySQL à l'aide du tunnel SSH et des paires de clés sur la même machine ?
Connexion de Python à MySQL via le tunneling SSH
Introduction
Établissement de connexions sécurisées entre Python et Les serveurs MySQL sont essentiels pour l'échange et la gestion des données. En utilisant le tunneling SSH, nous pouvons améliorer la sécurité de ces connexions en créant un canal crypté entre le client et le serveur. Cet article explore comment établir une telle connexion tunnel à l'aide de Python.
Question
Comment pouvons-nous permettre à Python de se connecter à un serveur MySQL via un tunnel SSH, facilité par Paires de clés SSH, avec l'hôte du tunnel SSH et le serveur MySQL sur le même machine ?
Réponse
Utilisation de SSH TunnelForwarder
L'approche suivante utilise la bibliothèque sshtunnel pour établir le tunnel, puis se connecte vers MySQL en utilisant pymysql :
import pymysql import paramiko import pandas as pd from paramiko import SSHClient from sshtunnel import SSHTunnelForwarder sql_hostname = 'sql_hostname' sql_username = 'sql_username' sql_password = 'sql_password' sql_main_database = 'db_name' sql_port = 3306 ssh_host = 'ssh_hostname' ssh_user = 'ssh_username' ssh_port = 22 sql_ip = '1.1.1.1.1' # Create the SSH tunnel with SSHTunnelForwarder( (ssh_host, ssh_port), ssh_username=ssh_user, ssh_pkey=mypkey, remote_bind_address=(sql_hostname, sql_port)) as tunnel: # Connect to MySQL conn = pymysql.connect(host='127.0.0.1', user=sql_username, passwd=sql_password, db=sql_main_database, port=tunnel.local_bind_port) # Execute a query query = '''SELECT VERSION();''' data = pd.read_sql_query(query, conn) # Close the connection conn.close()
Clé Composants
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!