2011-03-15 85 views
6

我正在嘗試使用Net :: SCP爲ssh連接定義自定義端口,但目前爲止還沒有成功。Ruby NET :: SCP和自定義端口

這裏是如何,我試圖從服務器下載遠程文件與自定義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沒有使用我的自定義端口。

我的任何提示?

問候,亞歷克斯

回答

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 
2

我還留着一個SSH非標準端口上使用SCP,像這樣:

Net::SCP.upload!("foo.net", "user", the_file, the_file, :ssh => { :keys => @keys, :port => the_port }) 

作品就像一個冠軍。我也使用基於密鑰的身份驗證,因此密鑰參數與端口一起傳遞。

+0

變量@keys如何設置? – RNickMcCandless 2014-11-26 01:56:30