首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Net::SSH在SSH会话中打开SSH会话?

如何使用Net::SSH在SSH会话中打开SSH会话?
EN

Stack Overflow用户
提问于 2014-08-19 18:07:49
回答 1查看 153关注 0票数 0

我需要通过公共的database服务器对位于专用子网中的nat服务器进行SSH访问。只有nat有一个允许连接到database的RSA密钥。我要怎么用Net::SSH来实现呢?

我试过以下几种方法:

代码语言:javascript
复制
def ssh
  Net::SSH.start(DB_SERVER_IP, DB_SERVER_USERNAME, proxy: proxy)
end

def proxy
  Net::SSH::Proxy::Command.new("ssh -l #{NAT_USER} -e none #{NAT_IP} exec nc %h %p 2>/dev/null")        
end

这种方法确实使私有database服务器对localhost可见,但是localhost没有一个RSA密钥连接到它,并且连接失败

代码语言:javascript
复制
Permission denied (publickey). 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-19 19:16:56

解决办法:

代码语言:javascript
复制
def ssh
  Net::SSH.start(DB_SERVER_IP, DB_SERVER_USERNAME, proxy: proxy, key_data: [pem])
end

def proxy
  Net::SSH::Proxy::Command.new("ssh -l #{NAT_USER} -e none #{NAT_IP} exec nc %h %p 2>/dev/null")        
end

def pem
  Net::SSH.start(NAT_IP, NAT_USER).exec!('cat ~/.ssh/the.pem')
end
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25390137

复制
相关文章

相似问题

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