Dans les applications Python, l'accès aux bases de données MySQL est souvent nécessaire. Pour établir des connexions sécurisées, une technique consiste à utiliser un tunnel SSH. Cet article explique comment exploiter les paires de clés SSH pour créer un tunnel SSH et faciliter la connectivité MySQL via Python.
Considérez le code Python suivant :
import MySQLdb db = MySQLdb.connect(host="sql.domain.com", user="dev", passwd="*******", db="appdb")
Alors que le code ci-dessus établit une connexion directe au serveur MySQL, il peut y avoir des scénarios dans lesquels un tunnel SSH est requis pour une sécurité renforcée. Un tunnel SSH crypte la connexion, fournissant ainsi un canal de communication sécurisé.
Pour configurer un tunnel SSH et vous connecter à MySQL à l'aide de Python, suivez ces étapes :
Voici un exemple d'extrait de code qui illustre ces étapes :
import pymysql import paramiko import pandas as pd from paramiko import SSHClient from sshtunnel import SSHTunnelForwarder from os.path import expanduser # SSH Parameters home = expanduser('~') mypkey = paramiko.RSAKey.from_private_key_file(home + pkeyfilepath) ssh_host = 'ssh_hostname' ssh_user = 'ssh_username' ssh_port = 22 # MySQL Parameters sql_hostname = 'sql_hostname' sql_username = 'sql_username' sql_password = 'sql_password' sql_main_database = 'db_name' sql_port = 3306 with SSHTunnelForwarder( (ssh_host, ssh_port), ssh_username=ssh_user, ssh_pkey=mypkey, remote_bind_address=(sql_hostname, sql_port)) as tunnel: conn = pymysql.connect(host='127.0.0.1', user=sql_username, passwd=sql_password, db=sql_main_database, port=tunnel.local_bind_port) # Perform database operations here... conn.close()
En implémentant ces techniques, vous pouvez vous connecter en toute sécurité à un serveur MySQL via un tunnel SSH en Python. Cette approche garantit la confidentialité et l'intégrité des données, ce qui la rend adaptée aux applications nécessitant des mesures de sécurité élevées.
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!