在两个不同的端口上使用pexpect pxssh两次
问题描述:
我试图通过使用pxssh的SSH连接到远程设备,但其中一个设备是SSH端口2222,一个是22.我知道我可以更改pxssh中的硬编码值。 py到22或2222,但我不知道我怎么能同时做到这一点。在两个不同的端口上使用pexpect pxssh两次
我看着pxssh login()函数,并试图把“口”的密码后,因此调用pxssh时,我可以指定端口需要如
pxssh.py文件
def login (self, server, username, password='', port, terminal_type='ansi',original
_prompt=r"[#$]", login_timeout=10,
auto_prompt_reset=True, ssh_key=None, quiet=True,
sync_multiplier=1, check_local_ip=True):
调用pxssh从我的文件
s.login(server, username, password, port)
然而,随着
error'ed登录我当时以为我可以复制pxssh并有pxssh22.py和pxssh2222.py
if something:
from pexpect import pxssh22
else:
from pexpect import pxssh2222
但是每一个指定不同的硬编码端口号保持与所谓的示数时:
try:
s = pxssh2222.pxssh()
s.login(server, username, password)
except pxssh2222.ExceptionPxssh as e:
NameError: global name 'pxssh2222' is not defined
我怎样才能使用pxssh来访问端口2222和22.谢谢
答
由于没有人有任何想法,我通过移动pxssh.py文件中的端口参数,然后rearra将s.login函数调用包含在端口中。
修改pxssh.py文件
def login (self, server, username, port, password='', terminal_type='ansi',
original_prompt=r"[#$]", login_timeout=10,
auto_prompt_reset=True, ssh_key=None, quiet=True,
sync_multiplier=1, check_local_ip=True):
修改登录调用允许端口参数。
s.login(sshIP, "root", sshPort, sshPass)
答
调用login
方法时,可以将端口作为可选参数提供。
s = pxssh.pxssh()
s.login(server, username, password, port=2222)