最简单的方法是设置一个可以访问目标服务器的 Jump-host 服务器,然后通过让 Jump-host 服务器代理您的连接来连接到目标服务器。
SSH 让它变得非常简单:
ssh -J user@jump-host myuser@target-host
在您的 .ssh/config 中,您可以执行以下操作:
### First jump-host. Directly reachable
Host jump-host
HostName jum-phost.example.org
### Host to jump to via jump-host.example.org
Host target-host
HostName target-host.example.org
ProxyJump jump-host
这将允许您像往常一样使用 net-ssh。如果您不想更改配置文件,则必须使用 'net/ssh/proxy/jump'
:
require 'net/ssh/proxy/jump'
proxy = Net::SSH::Proxy::Jump.new('user@proxy')
Net::SSH.start('host', 'user', :proxy => proxy) do |ssh|
...
end
有关 Jump Hosts 的更多信息,请参阅本文。