Pregunta

Esto es bastante raro. He añadido mi clave pública al ordenador central. Simplemente puedo ejecutar

ssh -p <port> -l <username> hostt.com

que simplemente se abre la carcasa a distancia. Incluso puedo ejecutar mis guiones Capistrano para los despliegues en la misma máquina. Pero cuando yo estaba tratando de conectar con esta secuencia de comandos siguiente rubí sencilla

require 'rubygems'
require 'net/ssh'

Net::SSH.start("hostt.com", 
               :port => <port>, 
               :username => <username>
              ) do |session|
  puts session.pwd
end

se niega inmediatamente con la siguiente excepción:

`initialize': Connection refused - connect(2) (Errno::ECONNREFUSED)

¿Hay algo que me falta aquí?

Agradecemos su ayuda.

¿Fue útil?

Solución

Bien, ahora después de unos días, cuando miro hacia atrás al problema, tengo un rápido éxito con el siguiente truco:

Net::SSH.start("<host>", "<user>", :port => "<port>") { |ssh|
  puts "logged in"
  puts ssh.exec!("ls -l")  
} rescue puts "failed to connect."

Así que la diferencia con el anterior es el nombre de usuario, que en este caso se pasa como segundo argumento en lugar de como una tecla de opción.

Otros consejos

es probable que tenga que proporcione la ubicación de su llave SSH o una contraseña para su uso con el nombre de usuario que proporcione en los parámetros SSH.start. para las teclas, lo que necesita para pasar el valor del mapa como un :keys => ["path_to_key"] matriz. No estoy seguro de por qué el API está configurado de esa manera, pero lo es.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top