我有一个带有多个存储库的 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)
现在,当我推送时,git 抱怨权限被拒绝(公钥)!!!
我看到 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 config 有 user.name 和 user.email !!!
答案 0 :(得分:2)
user.name
和 user.email
配置 have no effect 以任何方式进行身份验证。它们仅影响您在提交或标记中输入的个人姓名和电子邮件地址。
如果将用户名放在推送 URL 中对您有效,那么就这样做:这是最简单、最简单的方法。使用 GitHub 或 GitLab 等网站的每个用户都必须在 URL 中输入用户名 (git
),因此这样做应该没有问题。如果您不指定用户名,默认值由 OpenSSH 确定,通常默认为您本地用户的用户名,尽管它区分大小写。如果需要,您也可以在 ~/.ssh/config
中显式覆盖它,但在 URL 中指定它可能更容易。