为了访问某台机器,我需要通过代理,然后通过跳转主机,然后才能到达所需的位置。
为此,我使用了如下配置文件:
### 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
参数采用主机名,而不是主机名:端口