首頁 > 資料庫 > mysql教程 > 如何在同一台機器上使用 SSH 隧道和金鑰對將 Python 安全地連接到 MySQL 伺服器?

如何在同一台機器上使用 SSH 隧道和金鑰對將 Python 安全地連接到 MySQL 伺服器?

Mary-Kate Olsen
發布: 2024-12-04 00:04:11
原創
443 人瀏覽過

How to Securely Connect Python to a MySQL Server Using SSH Tunneling and Key Pairs on the Same Machine?

透過SSH 隧道將Python 連接到MySQL

SQL

SQL問題

我們如何讓Python 透過SSH 隧道連接到MySQL 伺服器,透過以下方式實作SSH金鑰對,SSH隧道主機和MySQL伺服器在同一台

回答

利用。 >

SSH隧道轉發器

:此程式庫管理 SSH 連線並在客戶端和 SSH 伺服器。

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()
登入後複製

主機金鑰Pairs:這些金鑰用於驗證 SSH 連線並確保安全通訊。

    SSHTunnelForwarder.remote_bind_address
  • :指定隧道將連接到 MySQL 伺服器的位置。
  • PyMySQL
  • :用於使用隧道的本地綁定建立 MySQL 連接港口。

以上是如何在同一台機器上使用 SSH 隧道和金鑰對將 Python 安全地連接到 MySQL 伺服器?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板