Ssh
SSH 到網路中的特定機器
我經常通過 傳輸文件和操作程序
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。參考