开发者

Unable to connect remote host through net/ssh

This is pretty weird. I have my pu开发者_如何学Cblic key added at host machine. I can simply run

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

which simply opens the remote shell. I can even run my capistrano scripts for the deployments on the same machine. But when i was trying connect with this following simple ruby script

require 'rubygems'
require 'net/ssh'

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

it refuses immediately with the following exception:

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

Is there anything I'm missing here?

Appreciate your help.


Okay, now after a few days when I look back to the problem, I got a quick success with the following tweak:

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

So the difference with the previous one is the username, which in this case is passed as the second argument rather than like an option key.


you probably need to provide the location of your SSH key, or a password to use with the username you provide in the SSH.start parameters. for the keys, you need to pass the map value as an array :keys => ["path_to_key"]. I'm not sure why the api is set up that way, but it is.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜