gpt4 book ai didi

ruby - ruby-检查通过另一台机器到远程的SSH连接

转载 作者:行者123 更新时间:2023-12-02 14:37:30 25 4
gpt4 key购买 nike

我正在使用aws sdk来创建计算机,并且在创建计算机后,我想检查与这些计算机的ssh连接。
问题是-从我的机器上,我无法访问EC2机器,但是我的网络上还有另一台机器,我可以通过ssh对其进行访问,而该机器也可以访问EC2机器。
现在,有没有一种简单的方法可以通过ruby检查到EC2机器的ssh?

我尝试了以下方法:

proxy = Net::SSH::Proxy::HTTP.new('<proxy ip>', 22)
Net::SSH.start('<EC2 machine's IP>', '<USER>', :proxy => proxy) do |ssh|
end
Errno::ECONNRESET: Connection reset by peer
from /home/galt/.rvm/gems/ruby-1.9.3-p484/gems/net-ssh-2.7.0/lib/net/ssh/proxy/http.rb:76:in `gets'
from /home/galt/.rvm/gems/ruby-1.9.3-p484/gems/net-ssh-2.7.0/lib/net/ssh/proxy/http.rb:76:in `parse_response'
from /home/galt/.rvm/gems/ruby-1.9.3-p484/gems/net-ssh-2.7.0/lib/net/ssh/proxy/http.rb:62:in `open'
from /home/galt/.rvm/gems/ruby-1.9.3-p484/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:67:in `block in initialize'
from /home/galt/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/timeout.rb:55:in `timeout'
from /home/galt/.rvm/rubies/ruby-1.9.3-p484/lib/ruby/1.9.1/timeout.rb:100:in `timeout'
from /home/galt/.rvm/gems/ruby-1.9.3-p484/gems/net-ssh-2.7.0/lib/net/ssh/transport/session.rb:67:in `initialize'
from /home/galt/.rvm/gems/ruby-1.9.3-p484/gems/net-ssh-2.7.0/lib/net/ssh.rb:200:in `new'
from /home/galt/.rvm/gems/ruby-1.9.3-p484/gems/net-ssh-2.7.0/lib/net/ssh.rb:200:in `start'
from (irb):12
from /home/galt/.rvm/rubies/ruby-1.9.3-p484/bin/irb:12:in `<main>'

谢谢 !

最佳答案

Net::SSH::Proxy::HTTP类旨在指向ssh连接的HTTP代理。因此,您将需要在该计算机上设置HTTP代理,以便能够通过它代理您的连接。

如果您不能这样做,建议您使用SSH反向隧道。我们将通过打开本地计算机上的端口8080,使用SSH隧道将发送到该服务器的流量转发到Server并使服务器将其转发到端口22上的EC2实例来实现此目的。net-ssh ruby​​ gem已经提供了帮助我们的命令。 ,但我们需要使用线程并行运行2个 session :

proxy_thread = Thread.new do
Net::SSH.start('<proxy ip>', '<user>') do |ssh|
ssh.forward.remote(8080, "<AWS ip>", 22)
ssh.loop { true }
end
end

proxy_thread.start

Net::SSH.start('localhost', '<localhost user>', port: 8080) do |ssh|
#done
end

proxy_thread.kill

关于ruby - ruby-检查通过另一台机器到远程的SSH连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25037813/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com