У меня есть некоторые сомнения по поводу Парамико. Если я сделаю стандартный код, найденный в inte rnet:
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='remote_host', username='...', password='...')
// TODO
ssh.close()
Допустим, у меня есть какой-то разъем JDB C, и я пытаюсь подключиться к базе данных, поместив код ниже в TODO
раздел
ssh.connect(hostname='remote_host', username='...', password='...')
connector.connect(database_params...)
ssh.close()
У меня вопрос. В этом случае клиент сервера базы данных будет remote_host
или мой локальный компьютер, на котором выполняется сценарий Python?
Или правильный путь будет использовать sshtunnel
? вот так:
with open_tunnel(
('remote_host', '22'),
ssh_username=...,
ssh_password=...,
remote_bind_address=('DB_ADDRESS', 'DB_PORT')
local_bind_address=('SOME_IP', 'SOME_PORT')
) as server:
connector.connect(db_host='SOME_IP', db_port='SOME_PORT', ...)
Есть ли разница между этими двумя подходами?
Заранее спасибо.