方便地透過 SSH 連接到內部主機嗎?

方便地透過 SSH 連接到內部主機嗎?

我最近發現,使用~/.ssh/config,我可以節省大量擊鍵並自動執行長命令行,指定大量每個主機的預設值。現在我注意到這個工具有多強大,我想知道它是否適合我的另一個用例。

我可以存取兩個主機,bastion並且wikispy. Bastion有一個外部IP,wikispy只能從內部IP看到。這意味著通常為了連接到wikispy,我需要bastion先 ssh 到,然後再呼叫ssh wikispy。顯然,像是連接埠轉送這樣的事情會變得複雜,這是我想避免的。

這引出了一個問題:我能否以某種方式建立~/.ssh/config一個條目來告訴「當使用者要求標記為 的主機時wikispy,實際連接到bastion,然後呼叫ssh wikispy」?是否可以透明地工作,以便我可以調用類似的東西ssh wikispy -L 9999:localhost:9999bastion以允許我從內部訪問它的方式轉發端口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

根據本文,您可以透過這種方式獲得多個嵌套層級。

相關內容