使用 -F 时 ssh 无法从配置中解析第二个主机

使用 -F 时 ssh 无法从配置中解析第二个主机

为了访问某台机器,我需要通过代理,然后通过跳转主机,然后才能到达所需的位置。

为此,我使用了如下配置文件:

### jumphost
Host jmp
  HostName xxx.xxx.xxx.xxx:port
  User user
  ProxyCommand corkscrew proxy.name.com port %h %p

### box
Host box
  HostName xxx.xxx.xxx.xxx
  User user
  ProxyCommand ssh mgmtbox netcat -w 120 %h %p

只要配置文件位于其设置位置,此方法就可以正常工作。但是,如果我想使用 -F 标志指定此配置文件(“ssh -F 配置文件框"),我收到以下错误:

ssh: Could not resolve hostname jmp: Name or service not known

问题只出现在第二台主机上。如果我使用“ssh -F 配置文件跳转“该命令运行正常。

我有点迷茫了,因为配置文件在通过 -F 标志使用之前工作得很好。有什么想法吗?

答案1

只要配置文件位于其设置的位置,此方法就可以正常工作。但是,如果我想使用 -F 标志(“ssh -F configfile box”)指定此配置文件,则会收到以下错误:

问题是,在运行代理命令时,您没有指定配置位置。它是完全不相关的ssh实例,因此它不知道主机名。

使用

ProxyCommand ssh -F configfile mgmtbox netcat -w 120 %h %p

会让它为你工作。另一个答案中指出的另一件事也适用。

答案2

我认为这就是问题所在

主机名 xxx.xxx.xxx.xxx:端口

我认为应该

HostName xxx.xxx.xxx.xxx
Port port

ssh 配置HostName参数采用主机名,而不是主机名:端口

相关内容