![方便地通过 SSH 连接到内部主机?](https://linux22.com/image/1448971/%E6%96%B9%E4%BE%BF%E5%9C%B0%E9%80%9A%E8%BF%87%20SSH%20%E8%BF%9E%E6%8E%A5%E5%88%B0%E5%86%85%E9%83%A8%E4%B8%BB%E6%9C%BA%EF%BC%9F.png)
我最近发现,使用~/.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
根据本文,通过这种方式,您可以获得多个级别的嵌套。