Безопасное соединение SSH с помощью bert-rpc в Ruby
Я использую гем 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 ответ
Решение этого было довольно простым. Создайте шлюз 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 в /tmp?