我最近发现,使用~/.ssh/config
,我可以节省大量击键并自动执行长命令行,指定大量每个主机的默认值。现在我注意到该工具的强大功能,我想知道它是否可以适合我的另一个用例。
我可以访问两台主机,bastion
和wikispy
。Bastion 有一个外部 IP,wikispy
只能从内部 IP 中看到。这意味着通常为了连接到wikispy
,我需要bastion
先 ssh 到 ,然后调用ssh wikispy
。显然,端口转发之类的事情会变得复杂,而这正是我想要避免的。
这就引出了一个问题:我能否以某种方式创建~/.ssh/config
条目来告知“当用户请求标记为 的主机时wikispy
,实际连接到bastion
,然后调用ssh wikispy
”?是否可以透明地工作,以便我可以调用类似的东西ssh wikispy -L 9999:localhost:9999
并bastion
转发端口,以便让我从 内部访问它wikispy
?
答案1
ProxyCommand
看起来,和的组合nc
很有用。这里有一个解决方案 - 将以下内容添加到~/.ssh/config
:
Host bastion
HostName EXTERNAL_IP
User d
Host wikispy
HostName INTERNAL_IP
User d
ProxyCommand ssh bastion nc -q0 %h 22
根据本文,通过这种方式,您可以获得多个级别的嵌套。