如果您运行的是较新版本的OpenSSH(7.3+),则可以使用ProxyJump它神奇地将所有内容组合在一起:
ssh -J windows_machine remote_server
您的~/.ssh/config外观如下:
Host remote_server
        HostName remote_server
        ProxyJump windows_machine
        User myname
ProxyJump支持全SSH语法,所以如果你是jim在windows_server和它使用的端口2222为SSH。remote_server从IP 192.168.0.110开始,windows_server您可以这样写:
Host remote_server
        HostName 192.168.0.110
        ProxyJump jim@windows_machine:2222
        User myname
而且仍然只是跑到ssh remote_server那里。
如果您运行的是SSH的旧版本,请使用ProxyCommand-允许您告诉SSH首先运行命令以建立代理连接,然后再运行实际的SSH命令。
ssh -o ProxyCommand='ssh -W %h:%p windows_machine' remote_server
这使用SSH -W选项,这是更神秘的netcat语法的简写。
请注意,当您开始运行ssh remote_server时,windows_machine您需要确保使用remove_server 跳转框中的IP而不是计算机中的IP-这些可能完全相同。
然后可以将该指令添加到~/.ssh/config文件中:
Host remote_server
  HostName remote_server
  User myname
  ProxyCommand ssh -W %h:%p windows_machine
这意味着如果您看到的remote_server 是另外一台机器,windows_machine则可以将其放入配置中并仍然使用ssh remote_server。