Bash 脚本 - 使用 SSH 登录后的第二次登录
Bash script - second login after logging in with SSH
在您成功通过 SSH 连接到 IP Cisco phone 后,另一个登录提示 (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:
上结束我试图期待不同的词(登录、奥金、史努比..)而不是 "snoopyplus login" 但它从来没有奏效。我用 sshpass 测试了它,但它最终出现在同一个地方。
我不想使用 SSH 密钥,也不介意让密码可见。
有办法吗?
谢谢
我会在你第一次发送密码后设置一个休眠间隔,这样可以让 expect 有时间。我的大部分期望使用是在 python 中,pexpect 使用 sendline 附加一个回车符 return,看起来您需要在 Tcl 中手动添加它。此外,根据我在多个不同的制造商和 OS 之间的经验,期待您的提示结束('>'、“#”、“%”、“:”)可以缓解一些问题。
在您成功通过 SSH 连接到 IP Cisco phone 后,另一个登录提示 (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:
上结束我试图期待不同的词(登录、奥金、史努比..)而不是 "snoopyplus login" 但它从来没有奏效。我用 sshpass 测试了它,但它最终出现在同一个地方。
我不想使用 SSH 密钥,也不介意让密码可见。
有办法吗?
谢谢
我会在你第一次发送密码后设置一个休眠间隔,这样可以让 expect 有时间。我的大部分期望使用是在 python 中,pexpect 使用 sendline 附加一个回车符 return,看起来您需要在 Tcl 中手动添加它。此外,根据我在多个不同的制造商和 OS 之间的经验,期待您的提示结束('>'、“#”、“%”、“:”)可以缓解一些问题。