ssh-agent转发需要额外的配置吗?


21

该指南在解释ssh-agent如何在多个系统上工作方面做得很好。我希望按照上一组图表中的设置进行转发,但是在跟踪所需的步骤时遇到了麻烦。

对于网络上的某些计算机,我可以从A到B,然后从B到C切换,而无需输入证书密码。但是,其他计算机给出“无法打开与身份验证代理的连接”的消息(有时!),则不会转发我的身份验证信息。从其中一台计算机到网络上的另一个盒子的SSH提示再次输入我的私钥密码。

我没有建造这些机器,但是我可以管理其中一些。我不知道Boxen能正常工作与无效之间有什么区别-可能是防火墙问题,ssh / ssh-agent / sshd配置等等,而且我看不到任何步骤-专门针对网上浮动转发的分步指南。我只需要知道从哪里着手解决这个问题。

Answers:


23

必须在客户端(中的ForwardAgent选项~/.ssh/config)和服务器(中的AllowAgentForwarding选项sshd_config)上允许Ssh代理转发。您的计算机可能对这两个选项中的一个或两个具有不同的默认设置。

如果您要使用A-> B-> C,则无需在B-> C步骤中进行转发(除非您当然要去C-> D)。

登录到B后,检查是否SSH_AUTH_SOCK已定义环境变量。它的价值在于如何ssh知道如何联系代理。

没有充分的理由禁止服务器中的代理转发,因为代理转发使客户端容易受到服务器的攻击,而不是相反,并且原则上您可以手动设置代理转发(尽管这样做没有太多意义)设置它的困难将破坏代理转发的便利性)。


好消息:感谢您指出我要寻找的正确按键!坏消息:显然这是openssh-server中的已知错误。在某些时候它似乎已经修复,但是我认为我没有运行当前足够的版本-尝试启用它时,出现“错误的配置选项:AllowAgentForwarding”。似乎无法更新我的软件
加载了

1
@Coderer:由于代理转发默认为打开,因此足以删除中的任何AllowAgentForwardingsshd_config
吉尔(Gilles)“所以,别再邪恶了”,2010年

@Gilles如果有人想为现有会话手动设置代理转发,他们将如何做?这是与临时计算机(如AllowAgentForwarding禁用了AMI的计算机)一起使用的预配置脚本的真正需求。
Andrew De Andrade 2014年

@AndrewDeAndrade对于现有会话,您的工作已被剪除。如果您要设置代理转发(即使服务器上已禁用代理转发),则需要通过TCP转发Unix套接字;双方都可以用netcat或socat做到这一点。
吉尔斯(Gilles)'所以

@吉尔斯这也是我得出的结论。我发现您还可以使用spiped,它虽然更安全,但需要对称密钥交换,但此后更简单。
Andrew De Andrade 2014年

14

尽管您上面的@Gilles已经有了正确的答案,但我想指出的AllowAgentForwarding是,仅OpenSSH 5.1及更高版本才支持。

从我在RHEL 4u5框中看到的情况来看,5.1之前的OpenSSH服务器默认情况下允许代理转发。因此,如果您的服务器早于5.1且代理转发不起作用,则ssh客户端中可能是问题所在。由于转发似乎对您的某些机器有效,因此似乎/etc/ssh/ssh_config设置正确。检查~/.ssh/config是否有任何异常来禁用受影响的框的代理转发。

参考:http : //www.openssh.org/txt/release-5.1


嗨Sandip,您对此有任何想法吗?superuser.com/questions/958978/...
NIKS
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.