Назад | Перейти на главную страницу

Туннель SSH для разрешения трафика ssh: соединение всегда отклоняется

У меня на работе есть доступ к двум серверам. На сервере A размещаются репозитории git, и он виден извне. Я хотел бы иметь возможность клонировать репозиторий на сервер B, который размещен на сервере A.

В настоящее время я не могу передавать ssh с сервера B на сервер A. Я предполагаю, что это блокирует брандмауэр.

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

Из оболочки сервера A:

$ ssh -L 1234:localhost:22 user@server_b

Это успешно выполняет вход на сервер B. Оттуда я ничего не могу сделать, используя ssh:

$ ssh user@localhost
$ user@localhost's password: <entered correctly>
$ Permission denied, please try again.

$ ssh user@localhost -p 1234
$ ssh: connect to host localhost port 1234: Connection refused

Пытаюсь клонировать

$ git clone ssh://user@localhost:1234/path/to/repo.git/
$ ssh: connect to host localhost port 1234: Connection refused
$ fatal: The remote end hung up unexpectedly

Моя начальная команда туннелирования неверна? Или мне может понадобиться попросить администратора сети открыть что-нибудь на брандмауэре?

Вам нужно создать обратный туннель с -R вместо того -L.

На вашем локальном компьютере используйте

ssh -R 1234:server_a:22 user@server_b

Вы получите оболочку server_b. Если вы это сделаете

ssh -p 1234 user@localhost

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

После этого ваша команда git clone должна работать.