Как подключиться к базе данных через туннель Paramiko (или аналогичный пакет)

У меня серьезные проблемы с настройкой правильного туннеля в paramiko для подключения к базе данных. Я рассмотрел пример forward.py, но не понимаю, как связать с ним соединение с базой данных. Любые указатели будут высоко оценены.

Я думаю, что мне нужно что-то следующее:

t = paramiko.Transport((hostname, port))
t.connect(username=username, password=password, hostkey=hostkey) 
c = paramiko.Channel(t)

#something about assigning a local port to this connection

connection = psycopg2.connect(connectionstring)
#and do my stuff

connection.close()
c.close()
t.close()

2 ответа

Решение

Если вы создали свой ssh-туннель, используя скрипт forward.py; вы можете использовать туннель ssh для подключения к postgresql следующим образом:

conn = psycopg2.connect(database="test", host="localhost", port=<forward_port>)

У меня были те же серьезные проблемы, заставляющие работать paramiko, но в итоге я сделал это с другой библиотекой (sshtunnel), которая оборачивает и упрощает туннелирование paramiko.

Вы можете проверить мой ответ в другом подобном вопросе с некоторым примером кода, чтобы использовать его.

Другие вопросы по тегам