ssh -A无法正确启用身份验证代理连接的转发


22

我喜欢ssh -A,这使我可以在从远程服务器建立连接时使用本地ssh密钥。例如,我ssh -A host1.example.com然后从那里可以ssh host2.example.com(或使用git),它使用原始计算机中的ssh密钥,在这种情况下,该密钥为我的mac。尽管这在Debian / Ubuntu上一直对我有用,但在我的新Mac(Lion)上却不起作用。

我在这里想念什么?如何配置ssh以与-A一起正常使用?我需要不是标准MacOS的ssh吗?

Answers:


33

实际上,非常简单的答案是您必须运行

ssh-add

然后一切正常。

基本上,macOS已经为您设置了ssh-agent,但是每次重新启动后,您都需要向其中添加密钥。ssh-add使ssh-agent在当前引导周期内可以访问您的密钥。如果创建了私钥,则必须输入私钥的密码。


升级到macOS后,这解决了我最新的ssh转发问题(5年后,仍然是一个有用的答案,谢谢@rfay)
23tux

这确实有效,但是对为什么有用/有助于人们记住该命令的一些解释。
亚当·帕金

2
@AdamParkin添加了另一段说明。
rfay


1

从OS X 10.8开始,您需要执行一次操作:

sudo touch /var/db/useLS

并将其添加为您的一部分~/.bash_profile

if [ -f ~/.ssh/id_rsa ]; then
    ssh-add -K ~/.ssh/id_rsa 2>/dev/null
fi

注意:这个配方是我的parto 贝都因人的脚本。


嗯,只是尝试了一下;代理确实会启动,但是您仍然必须ssh-add才能使一切正常工作。据我了解,仅ssh-add仍然是答案。我想我应该将其添加到我的.bash_profile中。
rfay 2013年

大声笑,如果我的私钥需要密码怎么办?
Jeffrey04年
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.