Ruby NET :: SCP和自定义端口

时间:2011-03-15 09:56:15

标签: ruby ssh port

我正在尝试使用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

2 个答案:

答案 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 } )

像冠军一样工作。我还使用基于密钥的身份验证,因此密钥参数与端口一起传递。