我在 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}
HOST、USER、FTP_KEY和QUOTAGUARDSTATIC_URL是Heroku 环境变量。
我的想法:
我认为要使用代理连接AWS EC2,可能需要配置一些设置以允许AWS EC2上的代理。
但不确定。