Bash脚本 - 使用SSH登录后第二次登录

时间:2018-03-09 08:59:00

标签: bash ssh expect cisco

成功通过SSH连接到IP思科电话后,会出现另一个登录提示(snoopyplus login:),然后出现Password:。 我想创建一个脚本,它生成ssh,连接到设备,在第二个登录提示符中再次登录,然后执行某些操作。到目前为止,我尝试过这样的事情:

 $!/usr/bin/expect -f
 spawn ssh user@ip
 expect "assword:"
 send "pw"
 expect "snoopyplus login:"
 send "user2"
 expect "Password:"
 send "pw2"

脚本与SSH连接并最终在snoopyplus login:我试图期望不同的单词(登录,ogin,snoopy ..)而不是" snoopyplus登录"但它从来没有奏效。我用sshpass测试它但它最终在同一个地方。 我不想使用SSH密钥,我不介意密码可见。 有办法吗? 谢谢

1 个答案:

答案 0 :(得分:0)

我会在您第一次发送密码后设置一个休眠间隔,这样可以预期有时间。我期望使用的大多数都是在python中使用带有pendpect的sendline附加一个回车符,看起来你需要在Tcl中手动添加它。同时根据我在多个不同的制造商和操作系统之间的经验,期待你的提示结束('>',"#","%&# 34;,":")减轻了一些问题。