Ruby NET :: SCP и пользовательские порты - PullRequest
6 голосов
/ 15 марта 2011

Я пытаюсь определить пользовательский порт для соединения ssh, используя Net :: SCP, но пока безуспешно.

Вот пример, как я пытаюсь загрузить удаленный файл с серверас пользовательским портом ssh:

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

Получаемое сообщение об ошибке:

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

В журналах сервера нет записей о соединении ssh, поэтому я предполагаю, чтоNet :: SCP не использует мой пользовательский порт.

Какие-нибудь советы для меня?

С уважением, Алекс

Ответы [ 2 ]

9 голосов
/ 15 марта 2011

Ну, я сам нашел решение.

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 голосов
/ 02 февраля 2013

Я также держу SSH на нестандартном порту и использую SCP следующим образом:

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

Работает как чемпион.Я также использую аутентификацию на основе ключей, поэтому параметр keys передается вместе с портом.

...