Безопасное соединение SSH с помощью bert-rpc в Ruby - PullRequest
1 голос
/ 09 марта 2012

Я использую гем bert-rpc в Ruby 1.9.3, чтобы совершать звонки на сервер Эрни, которого нет в моей локальной сети:

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

Теперь я хочу, чтобы это соединение было защищено через SSH. Я думал об использовании локального сокета Unix, но это означает, что мне нужно открыть код гема bert-rpc и заменить вызовы TCPSocket на вызовы UnixSocket. Разве нет другого пути?

Разве нельзя просто перенаправить локальный порт 9998 на www.someurl.com 9998, чтобы я мог сделать это:

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

Я пробовал примеры net / ssh с локального на удаленное устройство, но я не могу разобраться с ними и не могу найти хорошую документацию. Кто-нибудь был бы так любезен, чтобы показать мне пример того, как сделать переадресацию портов?

Спасибо

1 Ответ

2 голосов
/ 11 марта 2012

Решение этого было довольно простым.Создайте шлюз 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.

У кого-нибудь есть идеи, как заставить это работать на Heroku с Unix Socket in / tmp?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...