我正在尝试从本地计算机到名为 cluster 的服务器进行 ssh 多跳,中间使用名为 merlot 的服务器。根据http://sshmenu.sourceforge.net/articles/transparent-mulithop.html,这就是我制作 ~/.ssh/config 的方式:
Host merlot
HostName merlot.stat.uconn.edu
User vdeshpande
Host cluster
HostName stats.phys.uconn.edu
User vdeshpande
ProxyCommand ssh -q merlot nc -q0 cluster 22
当我ssh cluster
在终端中输入时,系统提示我输入 merlot 的密码。输入后,出现此错误:
cluster: forward host lookup failed: Unknown host
ssh_exchange_identification: Connection closed by remote host
我该如何修复这个问题?我已检查 nc 是否已安装。此外,我可以通过 ssh 进入 merlot,然后通过 ssh 进入 cluster。
答案1
您的 ProxyCommand 有误。有两种方法可以解决此问题:
首选方式是使用 openssh 本机交换机-w
:
ProxyCommand ssh -W %h:%p proxy
Netcat 版本如下所示:
ProxyCommand ssh -q proxy nc %h %p
您无法在远程 netcat 命令中使用别名,因为它不认识它们。 很好的指南是替换%h
,即HostName
您上面指定的。
因此对于你的情况:
ProxyCommand ssh -q merlot nc -q0 %h 22