我需要使用代理命令连接到SFTP服务器。
我知道如何直接连接到SFTP服务器:
paramiko's sshclient with sftp
我可以使用以下代码通过代理命令打开SSH连接:
import paramiko
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
target_host = 'sftp.XXXXX.co'
target_port = 22
proxy = paramiko.proxy.ProxyCommand('/usr/bin/nc --proxy proxy_host:8080 %s %d' % (target_host, target_port) )
client.connect(hostname=target_host,username='username', port=target_port, password='XXXXXXXX', sock=proxy)
但我需要创建SFTPClient
,而不是SSHClient
。但我不知道如何将ProxyCommand
传递给SFTPClient
。
答案 0 :(得分:0)
要使用"自定义套接字"连接到SFTP服务器,请执行:
proxy = paramiko.proxy.ProxyCommand(...)
transport = paramiko.Transport(proxy)
transport.connect(username = username, password = password)
sftp = paramiko.SFTPClient.from_transport(transport)