Доступ к репозиторию Git через SSH-туннель

У меня есть доступ к учетной записи SSH, которая может обращаться к серверу GIT, и я могу клонировать/нажимать/вытаскивать репо в этом SSH-журнале. Однако я не могу получить доступ к этому репо из других источников.

В учетной записи SSH я использую

git clone [email protected]:proj/myrepo.git

чтобы клонировать репо.

Я попытался настроить туннель ssh на сервер GIT с другого компьютера, используя

ssh -L 3333:gitserver:22 [email protected]
git clone ssh://localhost:3333/proj/repo.git

Однако я все время получаю запрос на пароль для пользователя 'git'. Любые идеи, что я делаю неправильно здесь?

Ответ 1

Когда вы это сделаете:

git clone [email protected]:proj/myrepo.git

клиент ssh запускается на локальном хосте ('sshserver') и аутентифицируется с помощью 'gitserver', используя аутентификацию открытого ключа. Если вам будет предложено ввести пароль для пользователя "git", это означает, что аутентификация с открытым ключом не удалась, а ssh переходит к следующему методу, который является аутентификацией пароля.

Наиболее вероятная причина, по которой проверка подлинности с открытым ключом завершилась неудачей, заключается в том, что у клиента ssh нет необходимого секретного ключа. В этом случае я подозреваю, что ключ, необходимый для аутентификации как "git @gitserver", находится в sshserver: ~/.ssh, и в этом случае он не будет доступен для клиента ssh, запущенного на локальном хосте при попытке клонирования репо через ваш туннель ssh.

Чтобы решить эту проблему, вам необходимо предоставить клиенту доступ к соответствующему ключу. Вы можете добавить его в ~/.ssh локально или загрузить в ssh-агент.