我正在尝试使用 sudo 使用命令保存 ssh 身份验证ssh-add
:
linux$ sudo ssh-add /root/.ssh/id_rsa
Could not open a connection to your authentication agent.
但正如所指出的,它返回错误
我做了一些研究,发现我必须执行eval "ssh-agent -s"
以下链接中指示的命令:https://stackoverflow.com/questions/17846529/could-not-open-a-connection-to-your-authentication-agent/17695338#17695338
但是如果使用 sudo 命令执行它会出现错误
$ sudo eval `ssh-agent -s`
sudo: eval: command not found
我错过了什么?
答案1
从以下关联:
幸运的是,有一种方法可以解决这个问题。Sudo 有一个配置选项,允许保留发出 sudo 命令的用户的给定环境变量。该选项称为 env_keep,可以通过更改 /etc/sudoers 文件中的设置来配置,如下所示(始终使用 visudo 来编辑文件):
visudo
Defaults env_reset
Defaults>root env_keep+=SSH_AUTH_SOCK
换句话说,在 Defaults env_reset 行下面添加保留 SSH_AUTH_SOCK 变量的行。然后保存文件并运行
ssh-agent bash
ssh-add
并且您应该能够执行 sudo 命令,使用非 sudo 用户的密钥访问您的服务器,而无需输入密钥密码。