Чтобы ssh на ящик за каким-то брандмауэром, я могу сделать следующее

home$ ssh me@ssh-server
ssh-server$ ssh me@box-behind-firewall
box-behind-firewall$

Чтобы я мог делать такие вещи, как использование git-репозиториев и т.д. На box-behind-firewall из-за пределов сети, я хочу объединить их в один URI, например,

ssh://me@ssh-server/;ssh://me@box-behind-firewall/some/path

Возможно ли это и как это сделать?

3 ответа3

1

Вы, вероятно, хотите использовать переадресацию портов. Подключите первую машину используя

ssh -L2222:box-behind-firewall:22 me@ssh-server

Пока это соединение активно, вы можете подключиться ко второй машине, используя

ssh -p 2222 me@localhost

с вашего локального компьютера или доступа к git-репозиториям на сервере, используя

ssh://me@localhost:2222/foo/bar/baz

как URI.

0

Это не возможно так, как вы хотите. После входа в систему вам потребуется выполнить некоторую команду, которую ssh-URI-схема не поддерживает - я полагаю, из-за проблем безопасности.

Если бы вы могли выполнить команду, вы могли бы напрямую подключиться к следующему серверу с помощью ssh.

Но вы можете сделать это с некоторым обходным путем. Эта строка от man sshd

8. If ~/.ssh/rc exists, runs it[...]

Вы можете просто добавить команду ssh на следующий сервер (или брандмауэр / маршрутизатор) здесь. Вам просто нужно найти способ отличить, хотите ли вы подключиться "обычным" способом или хотите, чтобы вас перенаправили на маршрутизатор - возможно, вы сможете просто добавить пользователя на первый сервер, который имеет цель только переадресовать вас на следующий сервер?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .