您好我有以下脚本登录我的服务器。
spawn ssh presnetwork@192.168.244.14
expect "*(yes/no)?"
send "yes"
expect "password:"
send "pwd\n"
close
它运行正常,但它没有将'pwd'值传递给系统,因此脚本超时并退出。 有什么建议吗?
答案 0 :(得分:1)
您可以尝试将“KbdInteractiveAuthentication”设置为“no”
(ssh -o KbdInteractiveAuthentication="no" presnetwork@192....
)。默认情况下,SSH使用键盘交互式身份验证,expect
可能无法理解。
我强烈建议您使用公钥身份验证(如Flo已推荐的那样)。它更容易处理,更安全,更舒适。如果您只是想要一种登录远程服务器而无需每次都输入密码的方法,请查看ssh-agent,它会在您输入一次之后为您存储密码您的桌面会话。如果您确实不想输入密码,请使用pam_ssh,其中将使用您的桌面登录密码。
答案 1 :(得分:0)
默认情况下,尚未安装expect命令。因此,您可以安装它以获得正确的输出。