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

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

На учетной записи SSH, которую я использую,

git clone git@gitserver:proj/myrepo.git

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

Я попытался настроить SSH-туннель на сервер GIT с другой машины, используя,

ssh -L 3333:gitserver:22 userid@sshserver
git clone ssh://localhost:3333/proj/repo.git

Тем не менее, меня постоянно просят ввести пароль для пользователя 'git'. Есть идеи, что я здесь делаю не так?

1 ответ

Решение

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

git clone git@gitserver:proj/myrepo.git

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

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

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

Другие вопросы по тегам