【问题标题】:SSH ignores my ForwardAgent config?SSH 忽略我的 ForwardAgent 配置?
【发布时间】:2014-05-02 23:14:53
【问题描述】:

我正在尝试为我正在开发的 web 应用设置 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)

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

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

【问题讨论】:

  • 您是否在命令行中使用“rs”作为主机名?否则,配置块不适用。

标签: ssh


【解决方案1】:

这个区块

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

仅适用于您对ssh 的调用看起来像

ssh rs

在这种情况下,ssh 知道应该使用它来代替“rs”。在您的通话中

ssh -v deploy@<server>

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

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

【讨论】:

  • 几小时后,这个答案帮助我解决了这个问题。我的问题是有Host example.com ForwardAgent yes,然后是缺少对应的别名ForwardAgent yes
【解决方案2】:

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 环境变量。

回显“$SSH_AUTH_SOCK”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-29
    • 2018-11-10
    相关资源
    最近更新 更多