在Ruby中使用bert-rpc保护SSH连接

时间:2012-03-09 18:35:37

标签: ruby ssh bert-rpc

我在Ruby 1.9.3中使用bert-rpc gem来调用不在我本地网络上的Ernie服务器:

BERTRPC::Service.new("www.someurl.com", 9998)

现在我希望通过SSH保护该连接。我在考虑使用本地unix套接字,但这意味着我需要打开bert-rpc gem代码并将TCPSocket调用替换为UnixSocket调用。不是有另一种方式吗?

是不是可以将localhost端口9998转发到www.someurl.com 9998,所以我可以这样做:

BERTRPC::Service.new("localhost", 9998)

我已经尝试了本地到远程的net / ssh示例,但我无法真正地围绕它们,我找不到任何好的文档。有人会如此友好地向我展示如何进行端口转发的示例吗?

由于

1 个答案:

答案 0 :(得分:2)

对此的解决方案非常简单。创建SSH网关:

gateway = Net::SSH::Gateway.new('www.someurl.com', 'myuser', :password => "somepass")
gateway.open('www.someurl.com', 9998, 9998)

将localhost:9998路由到www.someurl.com:9998。这不适用于Heroku,因为Heroku不允许绑定除分配的$ PORT之外的其他端口。

有没有人知道如何使用/ tmp中的Unix Socket在Heroku上进行此工作?