Paramiko BindAddress选项

时间:2015-04-07 19:04:43

标签: python sockets ssh paramiko

我正在尝试使用paramiko连接到远程主机。但是,为了连接,我需要指定一个绑定地址,您可以通过以下方式使用OpenSSH:

ssh -o BindAddress=x.x.x.x user@host

我一直在paramiko SSHClient文档中搜索高低等级选项,但我似乎无法找到它。看起来这将是一个标准选项。有人能指出我正确的方向吗?我是否需要创建单独的套接字连接并使用它?

1 个答案:

答案 0 :(得分:0)

摘自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(主机名,端口= 22,用户名=无,密码=无,pkey =无,   key_filename = None,超时= 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,gss_trust_dns = True,passphrase = None)

     

袜子(套接字) –打开的套接字或类似套接字的对象(例如   通道)用于与目标主机进行通信