Ssh

SSH 到網路中的特定機器

  • July 22, 2013

我經常通過 傳輸文件和操作程序ssh,而且經常在家。我通常使用的機器是工作中的桌面,ssh除非我已經連接到部門網路,否則我無法直接使用它。因此,如果我在家,我必須ssh先到我部門的網路,然後再到我的桌面,即

ssh username@departmentnetwork進而 ssh username@desktop-departmentnetwork

這種設置意味著如果我要從家里傳輸文件,我必須scp將文件傳輸到部門網路上的驅動器ssh,再傳輸到部門網路,然後再將scp文件傳輸到我的桌面。

有沒有辦法使用任何或所有ssh, scp, 並sshfs連接到“網路中的網路”?

您可以使用ProxyCommand您可以設置的ssh方式,使其連接到“網關”系統,然後連接到“網關”系統後面的輔助系統。

Host internal-host
   User sam
   IdentityFile ~/.ssh/id_rsa
   ProxyCommand ssh user@gateway nc internal-host.somedom.com %p

該技術利用該工具nc充當連接器。這篇名為:Transparent Multi-hop SSH 的文章詳細介紹了它的工作原理。

我使用的另一個技巧是ControlMaster在我的設置中添加一個,這樣一旦我通過身份驗證,我就可以“回收”它,而不必繼續重新驗證其他連接。

Host *
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p

很多主機

如果您有多個內部主機,您可以使用~/.ssh/config文件中可用的特殊變數來獲取主機名 ( %h) 和埠 ( %p)。

Host host1 host2 host3
 User          internal-user
 ProxyCommand  ssh external-user@gateway.hostname.tld nc %h %p

這將允許您ssh host1從系統中連接到 host1。

參考

引用自:https://unix.stackexchange.com/questions/83891