Невозможно подключить удаленный хост через net / ssh - PullRequest
2 голосов
/ 10 января 2011

Это довольно странно. У меня есть открытый ключ на хост-машине. Я могу просто запустить

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

, который просто открывает удаленную оболочку. Я даже могу запускать свои сценарии capistrano для развертываний на одном компьютере. Но когда я пытался соединиться с этим следующим простым скриптом ruby ​​

require 'rubygems'
require 'net/ssh'

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

немедленно отказывается со следующим исключением:

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

Есть что-нибудь, что я здесь скучаю?

Ценю вашу помощь.

Ответы [ 2 ]

2 голосов
/ 17 января 2011

Хорошо, теперь, через несколько дней, когда я оглядываюсь назад на проблему, я быстро добился следующего изменения:

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

Таким образом, разница с предыдущим заключается в имени пользователя, которое в этом случае передается как второй аргумент, а не как ключ опции.

0 голосов
/ 10 января 2011

вам, вероятно, потребуется указать местоположение вашего ключа SSH или пароль для использования с именем пользователя, которое вы указали в параметрах SSH.start. для ключей необходимо передать значение карты в виде массива :keys => ["path_to_key"]. Я не уверен, почему API настроен таким образом, но это так.

...