2011-03-15 30 views
6

Estoy tratando de definir un puerto personalizado para la conexión ssh usando Net :: SCP, pero sin suerte hasta el momento.Ruby NET :: SCP y puertos personalizados

He aquí un ejemplo de cómo estoy tratando de descargar un archivo remoto desde un servidor con un puerto ssh personalizado:

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

El mensaje de error que estoy recibiendo es:

Errno::ECONNREFUSED: Connection refused - connect(2) 

Hay no hay entradas en los registros del servidor con respecto a la conexión ssh, así que supongo que Net :: SCP no está utilizando mi puerto personalizado.

¿Algún consejo para mí?

Saludos, Alex

Respuesta

9

Bueno, he encontrado la solución a mí mismo.

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

también guardo SSH en un puerto no estándar y el uso de SCP, así:

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

funciona como un campeón. También uso la autenticación basada en claves, por lo tanto, el parámetro keys se pasa junto con el puerto.

+0

¿Cómo se establece la variable @keys? – RNickMcCandless