除非从脚本运行,否则 SSH 身份验证有效吗?

除非从脚本运行,否则 SSH 身份验证有效吗?

我已按照类似于以下位置的说明设置服务器以允许密钥/对身份验证这个帖子

据我所知,它工作正常。例如,如果我执行以下操作,它就可以正常工作:

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_SSHDefaultsssh 可以找到您的身份验证套接字。

相关内容