Я попытался выполнить SSH-туннелирование на сервер с моего компьютерного терминала с помощью следующего кода.
ssh -L 3306:192.168.0.xx:41xx -p 2220 root@xxx.85.63.xxx
Затем я получил доступ к базе данных внутри (MySQL) с помощью следующей команды.
mysql -u username -h 192.168.0.xx -P 41xx -p
И это сработало. Но когда я попытался выполнить это с помощью Python, я не смог заставить его работать. Я всегда получаю следующее сообщение об ошибке:
OperationalError: (1045, "Access denied for user 'username'@'localhost' (using password: YES)")
Мой код до сих пор, как показано ниже.
from sshtunnel import SSHTunnelForwarder
with SSHTunnelForwarder(
('xxx.85.63.xxx', 2220),
ssh_password="psswd",
ssh_username="root",
remote_bind_address=('192.168.0.xx', 41xx)) as server:
conn = MySQLdb.connect(host='localhost',
port=server.local_bind_port,
user='username',
passwd='passwd',
db='dbname')
То, что я хочу сделать, это получить доступ к базе данных внутри сервера и сделать обычныйпроцесс манипулирования базой данных.
Честно говоря, я не очень знаком с SSH или SSH-туннелированием, поэтому я в значительной степени потерян здесь. Может кто-нибудь указать, что я должен делать, пожалуйста? заранее спасибо.