我有一台机器(我们称之为 MachineB),我创建了一个 ssh 隧道,这样我就可以 ssh 进入集群中的其余主机。在 MachineB 的 sshd_config 上启用了 AllowAgentForwarding,其他人可以在集群内从一台机器 ssh 到另一台机器,而无需重新输入他们的凭据,但我不能。我已经将我的公钥推送到集群中的所有机器,当我激活隧道时,我可以直接从本地机器 ssh 到集群中的机器而无需输入密码,但是如果我然后尝试从那台机器上 ssh到集群中的另一台机器,我必须重新输入我的密码(但其他人不必)。我试过查看代理转发工作人员的配置文件,但他们的配置文件与我的相同。
我正在运行 Mac OS X 10.6.6、OpenSSH_5.2p1 和 OpenSSL 0.9.8l
我的本地 .ssh/config 是:
StrictHostKeyChecking no
ServerAliveInterval 60
User john
Host MachineB.example.com MachineB
User john
ForwardAgent yes
ProxyCommand none
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
Host *
ForwardAgent yes
ProxyCommand ssh -x MachineB 'nc %h %p'
Run Code Online (Sandbox Code Playgroud)
MachineB 上的 .ssh/config 是
ForwardAgent yes
StrictHostKeyChecking no
Run Code Online (Sandbox Code Playgroud)
SSH_AUTH_SOCK 环境变量在我的本地机器和 MachineB 上都定义了。
这是我 SSH 到 MachineB 时的输出
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009 …Run Code Online (Sandbox Code Playgroud) ssh ×1