ssh 代理转发失败并显示“无法打开与您的身份验证代理的连接”

chb*_*chb 6 permissions ssh ssh-agent

Could not open a connection to your authentication agent当我尝试使用-AOpenSSH 客户端的代理转发选项 ( )从中间服务器连接到第三台服务器时收到错误消息。使用加载到ssh-agent. 尝试连接到最终服务器时会显示错误消息。

我的 OpenSSH 客户端设置为允许使用ForwardAgent yesin转发,~/.ssh/config中间服务器AllowAgentForwarding yes在守护进程的配置文件中。客户端配置不会被系统级文件覆盖。

我没有使用终端多路复用器,以避免因未设置环境变量而导致错误。要运行代理,我使用exec ssh-agent zsh和验证两个SSH_AUTH_SOCKSSH_AGENT_PID存在于当地的环境。我用来ssh-add分别为中间服务器和最终服务器添加私钥;我验证它们添加了ssh-add -l.

所有服务器都是最新版本 (OpenSSH 5.3),客户端是 OpenSSH 6.2。

chb*_*chb 12

我在这里发布这篇文章是因为我花了很多时间尝试使用 Google 寻找解决方案、阅读手册页并查阅一本关于 SSH 的流行书籍,但都无济于事。

发现问题的关键是仔细研究调试输出。

debug1: Remote: Agent forwarding disabled: mkdtemp() failed: Permission denied
Run Code Online (Sandbox Code Playgroud)

中间机是由使用 AWS 堆栈的云提供商托管的虚拟服务器 (RHEL 6.4)。由于我无法解释的原因,这是对/tmp目录的权限设置为:

drwxr-x--- 19  727  727  4096 Nov 28 05:30 tmp
Run Code Online (Sandbox Code Playgroud)

通过Grep'ing/etc/passwd我找不到与727的ID的用户。

像这样更正权限解决了我的问题:

sudo chown 0:0 /tmp
sudo chmod 1777 /tmp
Run Code Online (Sandbox Code Playgroud)

任何人都可以谈谈/tmp目录的特殊所有权吗?