在Pexpect模块中,pexpect.pxssh.pxssh类扩展自pexpect.spawn类,专用于SSH连接的设置。
通过pxssh类的login()方法,在第一次连接远程SSH服务器的时候,能够将服务器的证书保存在known_hosts中。
pxssh类支持通过密钥认证,而无需输入密码。
pxssh类使用的Shell提示符能够兼容大多数Borne/Bash或Csh。
基本使用示例如下:
from pexpect import pxssh import getpass try: s = pxssh.pxssh() hostname = raw_input('hostname: ') username = raw_input('username: ') password = getpass.getpass('password: ') s.login(hostname,username,password) s.sendline('uptime') # run a command s.prompt() # match the prompt print(s.before) # print everything before the prompt. s.sendline('ls -l') s.prompt() print(s.before) s.sendline('df') s.prompt() print(s.before) s.logout() except pxssh.ExceptionPxssh as e: print("pxssh Failed on login.") print(e)
设置SSH连接的参数
s = pxssh.pxssh(options={ "StrictHostKeyChecking": "no","UserKnownHostsFile": "/dev/null"}) ...
禁用密钥认证,只能通过密码认证
s.force_password = True s.login (hostname,password)
参考链接:
https://pexpect.readthedocs.io/en/stable/api/pxssh.html
原文链接:https://www.f2er.com/bash/392293.html