У меня на работе есть доступ к двум серверам. На сервере 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 должна работать.