No se puede conectar host remoto a través de red / ssh
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.
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.