这个问题通常是由于连接到SSH网关时密钥没有被正确设置而导致的。解决方法是通过在Python中使用paramiko库来设置密钥。
以下是一个示例代码,它演示了如何设置密码和密钥以建立到SSH网关的连接:
import paramiko
from sshtunnel import SSHTunnelForwarder
MY_REMOTE_SERVER_IP = '10.1.2.3'
MY_REMOTE_PORT = 22
MY_REMOTE_USER = 'remote_username'
MY_REMOTE_PASSWORD = 'remote_password'
MY_PRIVATE_KEY = '/path/to/private/key'
with SSHTunnelForwarder(
(MY_REMOTE_SERVER_IP, MY_REMOTE_PORT),
ssh_username=MY_REMOTE_USER,
ssh_password=MY_REMOTE_PASSWORD,
ssh_pkey=MY_PRIVATE_KEY,
remote_bind_address=('127.0.0.1', 5432),
local_bind_address=('0.0.0.0', 5432)) as ssh_tunnel:
print('SSH tunnel establised at {}:{}'.format(
ssh_tunnel.local_bind_host, ssh_tunnel.local_bind_port))
# do something with the SSH tunnel
在这个示例中,你需要将MY_REMOTE_SERVER_IP
、MY_REMOTE_PORT
、MY_REMOTE_USER
、MY_REMOTE_PASSWORD
和MY_PRIVATE_KEY
替换成你自己的ssh网关和密钥,然后运行代码即可建立连接。