在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)