我已按照类似于以下位置的说明设置服务器以允许密钥/对身份验证这个帖子。
据我所知,它工作正常。例如,如果我执行以下操作,它就可以正常工作:
ssh [email protected]
它不会提示我输入密码。这正是我想要的。但是,如果我编写一个像这样的小 bash 脚本:
#!/bin/bash -x
ssh [email protected]
并执行:
sudo ./mytestscript.sh
...它会提示我:
[email protected]'s password:
我做错了什么?我需要能够从脚本内部登录而无需输入密码!
答案1
我猜想,如果您不使用 运行该脚本,它应该可以正常工作sudo
。如果是这样,那么您的问题是 ssh 现在正在 root 的主目录中而不是您的主目录中寻找公钥。-i
在您的 ssh 命令中添加一个选项,指定您配置的密钥的路径,或者改用 root 的公钥。
如果您使用ssh-agent
它来存储密钥的解密版本而不是使用无密码密钥,那么您还需要编辑/etc/sudoers
并添加env_keep+="SSH_AUTH_SOCK SVN_SSH
到Defaults
ssh 可以找到您的身份验证套接字。