红宝石网:: SCP下载要求输入密码,然后失败

问题描述:

我试图从unix盒下载文件到内存缓冲区,然后将文件上传到另一个unix盒,但是当我尝试下载文件时。询问我的密码的话就算我把它放在我失败都试过:红宝石网:: SCP下载要求输入密码,然后失败

data = Net::SCP.download!("remote.host.com", "username", "/remote/path", :password => password) 

data = Net::SCP::download!("remote.host.com", "username", "/remote/path", :password => password) 

,但我得到:

Active Directory Password: 

然后当我输入密码:

Net::SCP::Error: SCP did not finish successfully (1) 

红宝石1.8.7(2010-12-23 PATCHLEVEL 330)[I386-的mingw32] 网SCP(1.0.4)

+0

传入':verbose => true'并查看会发生什么 – 2013-05-01 15:30:25

+0

与以前相同的结果,谢谢您的回应!我已经探索了一个使用Net :: SFTP的解决方案,但我仍然很好奇Net :: SCP为什么不这样做。 – 2013-05-01 15:44:08

尝试使用它像这样:

require 'net/scp' 

data = nil 
Net::SCP.start("remote.host.com", "username", :password => "password") do |scp| 
    data = scp.download!("/remote/path") 
end 

puts data 

编辑:我只是想这对红宝石红宝石1.9.3,对不起

+0

这确实有效,它与我使用Net :: SFTP开发的解决方案完全相同,这很有趣。然而,当我想要在服务器上传文件时,SCP将无法像SFTP那样执行。我必须执行'sftp.file.open(“filepath”,'w'){| f | f.puts数据结束}'SCP没有'.file' – 2013-05-01 15:57:58

+0

是的,sftp可能是你想要做的正确的事情 – 2013-05-01 16:09:32

貌似的Net :: SFTP是什么我ACTUA只是要去使用,它不多,也可能是我最终得到的,因为我没有意识到在把它放到另一台服务器上之前我需要'写'@data

data = nil 
Net::SFTP.start('remoteHost1', 'username', :password => 'password') do |sftp| 
    data = sftp.download!("filepath1") 
end 

Net::SFTP.start('remoteHost2', 'username', :password => 'password') do |sftp| 
    sftp.file.open("filePath2", "w") do |f| 
    f.puts data 
    end 
end