本文说明如何使用Python模拟SSH登录字符图形菜单(不知道这种菜单叫啥名字,姑且这么叫),并选择相应的菜单项进行操作。
以下图为例,在SSH成功登录后,选择第7行的改密功能项,重复输入密码确认后完成改密,所对应的Python脚本如下。
import time
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
old_pwd='xxxxxx'
new_pwd='xxxxxx'
ssh.connect(
hostname = 'xx.xx.xx.xx',
port = xxx,
username = "xxxx",
password = old_pwd
)
channel=ssh.invoke_shell()
time.sleep(1)
channel.sendall('\x1bOB\x1bOB\x1bOB\x1bOB\x1bOB\x1bOB\r')
time.sleep(1)
resp = channel.recv(100000)
if "Please enter new password for" in resp:
channel.sendall(new_pwd+'\r')
channel.sendall(new_pwd+'\r')
time.sleep(1)
resp = channel.recv(100000)
if 'success' in resp:
print('modify pwd success.')
ssh.close()
else:
ssh.close()
注:为啥发送下移箭头的键值是\x1bOB
呢?其实是参考了这个how-to-send-an-arrow-key-use-paramiko-library-in-python后,再结合在Ubuntu终端里测试了下移箭头对应的可打印字符为^[OB
而猜出来的,具体原理没有深究。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)