首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无法通过net/ssh连接远程主机

无法通过net/ssh连接远程主机
EN

Stack Overflow用户
提问于 2011-01-10 19:37:37
回答 2查看 2.1K关注 0票数 2

这很奇怪。我在主机上添加了我的公钥。我可以简单地运行

代码语言:javascript
运行
复制
ssh -p <port> -l <username> hostt.com

它只是简单地打开远程外壳。我甚至可以在同一台机器上运行用于部署的capistrano脚本。但是当我尝试使用下面这个简单的ruby脚本进行连接时

代码语言:javascript
运行
复制
require 'rubygems'
require 'net/ssh'

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

它会立即拒绝,但有以下例外:

代码语言:javascript
运行
复制
`initialize': Connection refused - connect(2) (Errno::ECONNREFUSED)

我是不是漏掉了什么?

感谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-01-17 19:22:58

好的,几天后,当我回过头来看这个问题时,我很快就成功了,我做了以下调整:

代码语言:javascript
运行
复制
Net::SSH.start("<host>", "<user>", :port => "<port>") { |ssh|
  puts "logged in"
  puts ssh.exec!("ls -l")  
} rescue puts "failed to connect."

因此,与前一个不同的是用户名,在本例中,它作为第二个参数传递,而不是像选项键一样传递。

票数 3
EN

Stack Overflow用户

发布于 2011-01-10 22:30:32

您可能需要提供SSH密钥的位置,或者与您在SSH.start参数中提供的用户名一起使用的密码。对于键,您需要将映射值作为数组:keys => ["path_to_key"]传递。我不确定为什么api是这样设置的,但它是这样的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4646395

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档