我已经build立了我的服务器,通过遵循类似于这篇文章中find的指令来允许密钥/对authentication。
据我所知,这是正确的工作。 如果我做了以下,例如,它正常工作:
ssh [email protected]
它不会提示我input密码。 这就是我想要发生的事情。 但是,如果我写这样一个小的bash脚本:
#!/bin/bash -x ssh [email protected]
并执行:
sudo ./mytestscript.sh
它会提示我:
[email protected]'s password:
我究竟做错了什么? 我需要能够从我的脚本内login,而不需要提示input密码!
我猜测,如果你没有使用sudo
运行脚本,脚本就可以正常工作。 如果是这样的话,比你的问题是,ssh现在正在寻找根目录的主目录中的公钥而不是你的。 给你的ssh命令添加一个-i
选项,指定你configuration的密钥的path,或者改为使用root的公钥。
如果您使用ssh-agent
存储密钥的解密版本而不是使用密码短语密钥,则还需要编辑/etc/sudoers
并将env_keep+="SSH_AUTH_SOCK SVN_SSH
到Defaults
以便ssh可以find您的authsockets。