ssh代理转发失败,“无法打开连接到您的身份validation代理”

当我尝试使用OpenSSH客户端的代理转发选项( -A )从中间服务器连接到第三个服务器时,收到Could not open a connection to your authentication agent错误消息的连接。 到中间服务器的第一个连接使用加载到ssh-agent的密钥顺利进行。 尝试连接到最终服务器时显示错误消息。

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

我没有使用terminal多路复用器,以避免由于未设置环境variables而导致错误。 要运行该代理,我使用exec ssh-agent zsh并validation在本地环境中是否存在SSH_AUTH_SOCKSSH_AGENT_PID 。 我使用ssh-add分别为中间服务器和最终服务器添加私钥; 我validation它们是用ssh-add -l

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

我在这里发布这个,因为我花了很多时间试图find一个解决scheme,使用谷歌,阅读手册页,并咨询SSH的畅销书,都没有用。

find问题的关键是仔细研究debugging输出。

 debug1: Remote: Agent forwarding disabled: mkdtemp() failed: Permission denied 

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

 drwxr-x--- 19 727 727 4096 Nov 28 05:30 tmp 

通过/etc/passwd greping我无法findID为727的用户。

更正这样的权限解决了我的悲哀:

 sudo chown 0:0 /tmp sudo chmod 1777 /tmp 

任何人都可以说到/tmp目录的特有所有权?