git push 失败 - 权限被拒绝(公钥)

时间:2021-01-18 20:11:06

标签: 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)

现在,当我推送时,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 !!!

1 个答案:

答案 0 :(得分:2)

user.nameuser.email 配置 have no effect 以任何方式进行身份验证。它们仅影响您在提交或标记中输入的个人姓名和电子邮件地址。

如果将用户名放在推送 URL 中对您有效,那么就这样做:这是最简单、最简单的方法。使用 GitHub 或 GitLab 等网站的每个用户都必须在 URL 中输入用户名 (git),因此这样做应该没有问题。如果您不指定用户名,默认值由 OpenSSH 确定,通常默认为您本地用户的用户名,尽管它区分大小写。如果需要,您也可以在 ~/.ssh/config 中显式覆盖它,但在 URL 中指定它可能更容易。