ssh-agent 拒绝向 sudo 用户添加 root 的私钥
ssh-agent denies to add root's private key with sudo user
有没有办法在 ssh-agent 中使用标准 sudo 用户添加 root 的 ssh 私钥 ?
我不是很确定,但这是这个命令的限制吗?
在 ssh-add 手册页 中,我发现了这个:
身份文件不应该被除用户之外的任何人读取。请注意,ssh-add 会忽略其他人可以访问的身份文件。
这就是输出:
sudouser@myhost:/ $ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-Yppfd3Xp0Yrm/agent.2429; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2430; export SSH_AGENT_PID;
echo Agent pid 2430;
sudouser@myhost:/ $ eval $(ssh-agent)
Agent pid 2435
sudouser@myhost:/ $ ssh-add /home/sudouser/.ssh/id_rsa
Enter passphrase for /home/sudouser/.ssh/id_rsa:
Identity added: /home/sudouser/.ssh/id_rsa (/home/sudouser/.ssh/id_rsa)
按预期工作。
但是使用 root 的密钥我得到:
sudouser@myhost:/ sudo ssh-add /root/.ssh/ansible/id_rsa
or
sudouser@myhost:/ sudo sh -c 'ssh-add /root/.ssh/ansible/id_rsa'
Could not open a connection to your authentication agent.
sudo
清除环境变量。 ssh-add
需要 SSH_AUTH_SOCK 和 SSH_AGENT_PID 才能知道如何与 ssh-agent
交谈。所以你必须通过在命令中添加它们来欺骗它:
sudo sh -c 'export SSH_AUTH_SOCK="'"$SSH_AUTH_SOCK"'"; export SSH_AGENT_PID="'"$SSH_AGENT_PID"'"; ssh-add /path/to/roots/private/key'
有没有办法在 ssh-agent 中使用标准 sudo 用户添加 root 的 ssh 私钥 ?
我不是很确定,但这是这个命令的限制吗?
在 ssh-add 手册页 中,我发现了这个: 身份文件不应该被除用户之外的任何人读取。请注意,ssh-add 会忽略其他人可以访问的身份文件。
这就是输出:
sudouser@myhost:/ $ ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-Yppfd3Xp0Yrm/agent.2429; export SSH_AUTH_SOCK;
SSH_AGENT_PID=2430; export SSH_AGENT_PID;
echo Agent pid 2430;
sudouser@myhost:/ $ eval $(ssh-agent)
Agent pid 2435
sudouser@myhost:/ $ ssh-add /home/sudouser/.ssh/id_rsa
Enter passphrase for /home/sudouser/.ssh/id_rsa:
Identity added: /home/sudouser/.ssh/id_rsa (/home/sudouser/.ssh/id_rsa)
按预期工作。 但是使用 root 的密钥我得到:
sudouser@myhost:/ sudo ssh-add /root/.ssh/ansible/id_rsa
or
sudouser@myhost:/ sudo sh -c 'ssh-add /root/.ssh/ansible/id_rsa'
Could not open a connection to your authentication agent.
sudo
清除环境变量。 ssh-add
需要 SSH_AUTH_SOCK 和 SSH_AGENT_PID 才能知道如何与 ssh-agent
交谈。所以你必须通过在命令中添加它们来欺骗它:
sudo sh -c 'export SSH_AUTH_SOCK="'"$SSH_AUTH_SOCK"'"; export SSH_AGENT_PID="'"$SSH_AGENT_PID"'"; ssh-add /path/to/roots/private/key'