我可以使用密钥身份验证方法访问我的服务器,每次都需要输入密码。所以我决定使用expect函数编写一个脚本,而不是每次都输入密码。我的脚本如下:
# cat /root/test
#!/usr/bin/expect
spawn ssh -i /root/.ssh/id_rsa root@server.domain.com
expect -exact "Enter passphrase for key '/root/.ssh/id_rsa': "
send "mypassphrase\r"
但它没有按预期工作,仍然要求密码。
# /root/test server.domain.com
spawn ssh -i /root/.ssh/id_rsa root@server.domain.com
Enter passphrase for key '/root/.ssh/id_rsa':
我很确定我使用的密码是正确的,因为我在过去6个月内使用它,我仍然使用它来手动访问没有此脚本的服务器。
有人可以指出我在这个剧本中哪里做错了吗?。