ホームページ >データベース >mysql チュートリアル >SSH トンネリング経由で Python をリモート MySQL サーバーに安全に接続するにはどうすればよいですか?

SSH トンネリング経由で Python をリモート MySQL サーバーに安全に接続するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-01 15:02:10864ブラウズ

How to Securely Connect Python to a Remote MySQL Server via SSH Tunneling?

SSH トンネリング経由で Python を MySQL に接続する

データを安全に保護するには、SSH トンネル経由で Python とリモート MySQL サーバー間の接続を確立することが不可欠です取得と操作。基本的な MySQL 接続は簡単ですが、暗号化された SSH トンネルを作成すると、セキュリティ層がさらに追加されます。

Python が SSH トンネル経由で MySQL に接続できるようにする方法は次のとおりです:

import pymysql
import paramiko
import pandas as pd
from paramiko import SSHClient
from sshtunnel import SSHTunnelForwarder
from os.path import expanduser

home = expanduser('~')
mypkey = paramiko.RSAKey.from_private_key_file(home + pkeyfilepath)

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'

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)
    query = '''SELECT VERSION();'''
    data = pd.read_sql_query(query, conn)
    conn.close()

このコードSSHTunnelForwarder を使用して、ローカル マシンとリモート MySQL サーバーの間に SSH トンネルを確立します。 SSH 接続では認証に秘密キーが使用され、セキュリティが強化されます。

トンネルが確立されると、トンネルのローカル アドレスへの Python MySQL 接続が確立され、MySQL データベースへの安全なアクセスが可能になります。その後、クエリを実行してサーバーからデータを取得または操作できます。

以上がSSH トンネリング経由で Python をリモート MySQL サーバーに安全に接続するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。