Предположим следующие хосты:
У меня нет sudo
доступ к удаленный сервер, поэтому я не могу вносить изменения с пользователем root.
Вопрос в том: Можно ли получить доступ к порту на private.remoteserver из удаленный сервер, в одной команде?
Я немного поигрался с туннелями ssh без везения. Он хотел бы создать псевдоним SSH для private.remoteserver так как описано в этой статье.
Например, я бы хотел запустить с localhost:
curl http://private.remoteserver:8080/
подключиться к порту 8080 на приват. удаленном сервере. Это возможно?
Вы еще не показали нам, что пробовали, но что-то более простое должно сработать:
ssh -L 8080:private.remoteserver:8080 remoteserver
Что тогда позволит вам бежать:
curl http://localhost:8080/
... который из-за переадресации портов, которую мы только что настроили, фактически подключается к порту 8080
на private.remoteserver
.
Если вы хотите иметь прямой доступ http://private.remoteserver:8080/
от вашего клиента вам необходимо (а) настроить какой-либо прокси и (б) настроить curl (или другое программное обеспечение) для использования прокси. Вы можете настроить SOCKS5
прокси с ssh
используя -D
вариант:
ssh -D 1080 remoteserver
И тогда вы сможете:
curl --socks5-hostname http://private.remoteserver:8080/
Большинство веб-браузеров (Firefox, Chrome) также можно настроить для работы с SOCKS5
прокси. Если вы выполните поиск по запросу "ssh dynamic forwarding", вы найдете много хорошей документации, в том числе эта статья из Ubuntu.
На самом деле я решил свою проблему с шаттл:
sshuttle --dns -HN -r user@remoteserver
Никакой другой конфигурации прокси не требуется, тогда я могу получить доступ к любым портам частного IP:
curl http://private:8080/