сбой git push — отказано в разрешении (publickey)

#git #ssh #gerrit

#git #ssh #gerrit

Вопрос:

У меня есть сервер gerrit с несколькими репозиториями.

в манифесте я использую https://url , и он отлично работает для выборки.

я установил sshl pushurl="ssh://ssh-dns-name:29418" (обратите внимание, что в этом нет имени пользователя).

Когда я выполняю синхронизацию, все проекты имеют удаленные устройства, такие как —

 origin  https://url/my_project  (fetch)
origin ssh://ssh-dns-name:2941/my_project (push)
 

теперь, когда я нажимаю, мерзавец жалуется, что отказано в разрешении (publickey)!!!

я вижу, что user.name и user.email настроены правильно. user.name "Abhayadev S" (который настроен в gerrit как полное имя пользователя) и user.email "abhayadevs...@in.com" который настроен в gerrit как адрес электронной почты пользователя

также мое имя для входа в систему на клиентском компьютере — «abhayadevs», которое является именем пользователя gerrit.

если я использую имя пользователя в pushurl ( ssh://abhayadevs@ssh-dns-name:29418 ), все работает нормально!

итак, я в замешательстве, почему git не принимает имя пользователя!!!! я проверил git config --local --list , ничего не установлено локально!!! только глобальная конфигурация git имеет user.name и пользователь.электронная почта!!!

Ответ №1:

Конфигурации user.name и user.email никоим образом не влияют на аутентификацию. Они влияют только на личное имя и адрес электронной почты, которые вы вводите в коммит или тег.

Если вам удобно указывать имя пользователя в push-URL, то сделайте это: это самый простой и легкий способ заставить это работать. Каждый пользователь, использующий сайт, такой как GitHub или GitLab, должен указать username ( git ) в URL-адресе, поэтому это не должно быть проблемой. Если вы не укажете имя пользователя, значение по умолчанию определяется OpenSSH и обычно по умолчанию используется имя вашего локального пользователя, хотя оно чувствительно к регистру. Вы также можете переопределить его явно, ~/.ssh/config если вам нужно, но, вероятно, проще указать его в URL.

Комментарии:

1. спасибо за ответ. Как вы сказали, в итоге я добавил конфигурацию хоста в ~/.ssh/config 🙂 и это работает хорошо. фактически я использую манифест репозитория с несколькими проектами, и я не могу указать имя пользователя в общем манифесте, в котором была проблема.