我正在尝试使用paramiko连接到远程主机。但是,为了连接,我需要指定一个绑定地址,您可以通过以下方式使用OpenSSH执行此操作:
ssh -o BindAddress=x.x.x.x user@host我在paramiko SSHClient文档中到处寻找相同的选项,但我似乎找不到它。这似乎是一个标准的选择。谁能给我指个方向?我需要创建一个单独的套接字连接并使用它吗?
发布于 2019-04-12 21:18:42
摘自ssh_config手册:
BindAddress使用本地计算机上的指定地址作为连接的源地址。
您可以为客户端的connect函数提供一个套接字,因此可以在套接字中绑定源地址。
示例:
import socket
import paramiko
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('192.168.223.21', 0)) # set source address
sock.connect(('192.168.223.23', 22)) # connect to the destination address
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
client.connect('192.168.223.23',
username=username,
password=password,
sock=sock) # pass socket to Paramiko文档:http://docs.paramiko.org/en/2.4/api/client.html)。
connect(主机名,port=22,username=None,password=None,pkey=None,key_filename=None,timeout=None,allow_agent=True,look_for_keys=True,compress=False,sock=None,gss_auth=False,gss_kex=False,gss_deleg_creds=True,gss_host=None,banner_timeout=None,auth_timeout=None,,)
通道套接字()-用于与目标主机通信的开放套接字或类似套接字的对象(如通道)
https://stackoverflow.com/questions/29499264
复制相似问题