Ik geef er de voorkeur aan de tunnel binnen de python-code te houden, ik haatte het om handmatig of afzonderlijk tunnels te maken, dankzij de sshtunnel-bibliotheek is het heel eenvoudig te gebruiken.
Hier is een eenvoudig voorbeeld dat zal werken voor wat je wilt.
import MySQLdb
from sshtunnel import SSHTunnelForwarder
with SSHTunnelForwarder(
('sshhost.domain.com', 22),
ssh_password="sshpasswd",
ssh_username="sshusername",
remote_bind_address=('mysqlhost.domain.com', 3306)) as server:
conn = MySQLdb.connect(host='127.0.0.1',
port=server.local_bind_port,
user='user',
passwd='password',
db='dbname')