SSH忽略我的ForwardAgent配置?

时间:2014-03-05 07:55:27

标签: ssh

我正在尝试为我正在处理的webapp设置Capistrano,而我无法让代理转发工作。

这是我的~/.ssh/config

Host rs
Hostname <ip of my server>
  ForwardAgent yes

User root

我不认为默认设置会覆盖任何内容,因为那里从未提及ForwardAgent(除了注释行)。

这是我正常SSH时发生的事情:

$ ssh -v deploy@<server>
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/ulyssecarion/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *

-- snip --

debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic x86_64)

如果我强制SSH允许使用-A标志进行代理转发,那么我可以使用它:

$ ssh -Av deploy@<server>
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /Users/ulyssecarion/.ssh/config
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: /etc/ssh_config line 102: Applying options for *

-- snip --

debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: Requesting authentication agent forwarding. # Note this additional line here
debug1: Sending environment.
debug1: Sending env LANG = en_US.UTF-8
Welcome to Ubuntu 12.04.3 LTS (GNU/Linux 3.8.0-29-generic x86_64)

(请注意,第二个示例中的日志有一条额外的行,表示正在请求代理转发。)

这是正常的,还是我做错了什么?提前谢谢!

2 个答案:

答案 0 :(得分:14)

此块

Host rs
  HostName <ip of my server>
  ForwardAgent
  User root

仅适用于您对ssh的调用

的情况
ssh rs

在这种情况下ssh知道应该用来代替“rs”。在你的电话中

ssh -v deploy@<server>

无论你使用什么<server>都与“rs”不匹配(因为只有文字字符串“rs”匹配),所以该块不适用。

Host选项的参数必须是与您在命令行中实际使用的主机名匹配的模式。

答案 1 :(得分:1)

关于ServerFault有关于设置ssh代理转发的一些很好的信息。 https://superuser.com/questions/168933/extra-configuration-required-for-ssh-agent-forwarding

我想指出的一件事是,服务器上的ssh配置文件可能已将ForwardAgent注释掉,但至少在我的配置文件中,它确实列出了ssh默认值。对于某些版本的openssh,您必须在服务器上设置AllowAgentForwarding选项。我发现这篇文章非常有用https://help.github.com/articles/using-ssh-agent-forwarding

检查ssh代理转发是否有效的方法是查看$ SSH_AUTH_SOCK环境变量。

echo&#34; $ SSH_AUTH_SOCK&#34;