要对华为的 IBMC 更改密码,官方文档只给了这么一个流程
https://s1.ax1x.com/2018/12/20/Fr1TgA.jpg
搜索了下交互输入就只有这个 s.exec_command('su -root') stdin.write('password') stdin.flush()
自己参考改了就是各种没反应... 或者报错
求教
最后用以上方法解决,不过这 API 有点看不懂... 到底是 send 里面开始输入 还是在 while 循环里面开始输入, 试了下把 while 里面的拆出来拼接到 send 下面就不能交互了......
各位老哥的推荐都看了来着... 不过要 linux 环境我就没法折腾了...
1
DAPTX4869 OP 下班跑路顺手顶一下
|
2
xpresslink 2018-12-20 18:47:26 +08:00 1
调用 expect 来交互
|
3
littlewey 2018-12-20 18:53:26 +08:00 via iPhone 1
pyexpect
调 shell 用 sshpass |
4
DAPTX4869 OP 谢楼上各位,明天试试
|
5
leoleoasd 2018-12-20 19:12:53 +08:00
少个\n 吧...
|
7
ThirdFlame 2018-12-20 19:31:33 +08:00 1
passwd 修改密码可以这样,你可以参照修改下试试
stdin, stdout, stderr = ssh_client.exec_command("passwd", timeout = 10) stdin.write("{0}\n{1}\n{1}\n".format(old_password, new_password)) out,err = stdout.read(),stderr.read() |
8
DAPTX4869 OP @ThirdFlame 好的,我明天测试
|
9
4linuxfun 2018-12-20 20:29:19 +08:00
可以试试 fabric,又 watcher,可以类似 pexpect 进行正则匹配后输入信息
|
11
julyclyde 2018-12-21 13:43:26 +08:00
stdin 和 tty 不同的
ssh 是从 tty 读取密码的 |