我正在尝试使用Net :: SCP为ssh连接定义一个自定义端口,但到目前为止没有运气。
以下是我尝试从具有自定义ssh端口的服务器下载远程文件的示例:
require "rubygems"
require 'net/scp'
Net::SCP.download!("www.server.com", "user", "/opt/platform/upload/projects/file.txt", "/tmp/bb.pdf",{:password => "mypassword",:port => 22202})
我收到的错误消息是:
Errno::ECONNREFUSED: Connection refused - connect(2)
服务器日志中没有关于ssh连接的条目,所以我假设Net :: SCP没有使用我的自定义端口。
给我的任何提示?
此致,Alex
答案 0 :(得分:9)
嗯,我自己找到了解决方案。
require "rubygems"
require "net/scp"
Net::SSH.start("www.myserver.com", "theuser", {:password => "whateverpwd",:port => 22212}) do |ssh|
ssh.scp.download! "/opt/platform/upload/projects/my.pdf", "/tmp/bb.pdf"
end
答案 1 :(得分:2)
我还将SSH保留在非标准端口上并像这样使用SCP:
Net::SCP.upload!( "foo.net", "user", the_file, the_file, :ssh => { :keys => @keys, :port => the_port } )
像冠军一样工作。我还使用基于密钥的身份验证,因此密钥参数与端口一起传递。