#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 🙂 и это работает хорошо. фактически я использую манифест репозитория с несколькими проектами, и я не могу указать имя пользователя в общем манифесте, в котором была проблема.