我正在尝试像这样设置 SSH 转发
osx > debianA > debianB
我可以使用 ssh -A 正常连接到 debianA,并且它具有以下环境变量:
SSH_AGENT_PID=1543
SSH_AUTH_SOCK=/tmp/ssh-giwdYY1542/agent.1542
SSH_CLIENT='92.233.199.x 38954 22'
SSH_CONNECTION='92.233.199.x 38954 108.171.179.x 22'
SSH_TTY=/dev/pts/0
当我尝试连接到 debianB 时,代理未被使用!
ssh -v 输出结束于:
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /home/nic/.ssh/id_rsa
debug1: Trying private key: /home/nic/.ssh/id_dsa
debug1: Next authentication method: password
然后我被要求输入密码。
我没有在 ssh_config 中设置任何 ForwardAgent no 指令,而且根本没有 .ssh/config。sshd_config 中没有 AllowAgentForwarding。我也尝试过所有这些指令,但都是 yes。
debianA 和 debianB 都有相同的 ssh_config 和 sshd_config(已通过 diff 验证),因此真正奇怪的是连接 OSX > debianB > debianA 工作正常!!
我完全没有主意了!有人遇到过这种情况吗?
干杯!NFV
更新 1
我注意到的另一件事是,当连接 osx > debianA 时,它在序言中做的最后一件事是吐出 Agent pid:
Nics-iMac:~ nic$ ssh -A nic@cloud01
Linux cloud01 2.6.32-5-xen-amd64 #1 SMP Tue Mar 8 00:01:30 UTC 2011 x86_64
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have new mail.
Last login: Tue Nov 27 06:42:47 2012 from xxx
Agent pid 717 <<< HERE ***********
nic@cloud01:~#
debianB 不会这样做,否则序言是相同的,这可能是一个线索吗?
网络功能虚拟化
答案1
在 debianB 上,检查 .sshd 的内容和权限,~/.ssh/authorized_keys
如果权限错误(太宽),它也会在日志中发出抱怨声。
答案2
弄清楚了这一点,我在 /etc/profile 的脚下执行了 eval ${ssh-agent},一定是覆盖了转发代理的设置。
感谢 NFV