且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用 Ansible 进行 SSH 代理转发

更新时间:2023-09-19 11:40:34

通过从剧本中删除这一行来解决问题:

The problem is resolved by removing this line from the playbook:

sudo: yes

在远程主机上运行sudo时,登录时ssh设置的环境变量不再可用.特别是 SSH_AUTH_SOCK,它标识用于与代理通信的 UNIX 域套接字的路径"不再可见,因此 ssh 代理转发不起作用.

When sudo is run on the remote host, the environment variables set by ssh during login are no longer available. In particular, SSH_AUTH_SOCK, which "identifies the path of a UNIX-domain socket used to communicate with the agent" is no longer visible so ssh agent forwarding does not work.

在不需要时避免使用 sudo 是解决问题的一种方法.另一种方法是通过创建 sudoers 文件来确保 SSH_AUTH_SOCK 在您的 sudo 会话期间保持不变:

Avoiding sudo when you don't need it is one way to work around the problem. Another way is to ensure that SSH_AUTH_SOCK sticks around during your sudo session by creating a sudoers file:

/etc/sudoers:

     Defaults    env_keep += "SSH_AUTH_SOCK"