我正在使用Heroku上的 QuotaGuard静态插件来访问已将IP列入白名单的 SFTP服务器(AWS EC2)。
我尝试连接一个私钥文件。 这是我的代码。
def connect
puts "started"
Net::SSH.start(ENV["HOST"], ENV["USER"],
{
:key_data => [ ENV["FTP_KEY"] ],
:keys => [],
:keys_only => true,
:verbose => :debug,
:proxy => proxy
}
) do |ssh|
ssh.sftp.connect do |sftp|
sftp.dir.foreach("/") do |entry|
puts entry.longname
end
end
end
puts "done"
end
def quotaguard
URI(ENV["QUOTAGUARDSTATIC_URL"])
end
def proxy
Net::SSH::Proxy::HTTP.new(quotaguard.host,quotaguard.port, :user => quotaguard.user,:password=> quotaguard.password)
end
但是由于该错误连接失败。
WARN: Net::SSH::Proxy::ConnectError: {:version=>"HTTP/1.1", :code=>502, :reason=>"Bad Gateway", :headers=>{}, :body=>nil}
主机, USER , FTP_KEY 和 QUOTAGUARDSTATIC_URL 是 Heroku Env变量
我的想法:
我认为使用 proxy 连接 AWS EC2 ,也许需要配置一些设置以允许 AWS EC2上的 proxy 。
但不确定。
答案 0 :(得分:0)
AWS EC2上的安全组有误。 我更新了,现在可以连接了。