git推送失败-权限被拒绝(公钥)
我有一个gerrit服务器,具有多个repo 在清单中,我使用的是git推送失败-权限被拒绝(公钥),git,ssh,gerrit,Git,Ssh,Gerrit,我有一个gerrit服务器,具有多个repo 在清单中,我使用的是https://url而且它可以很好地进行抓取 我设置了一个sshlpushurl=”ssh://ssh-dns-name:29418“(请注意,此处没有用户名) 当我进行同步时,所有的项目都有类似的遥控器- origin https://url/my_project (fetch) origin ssh://ssh-dns-name:2941/my_project (push) 现在,当我推的时候,git抱怨权限被拒绝(公
https://url
而且它可以很好地进行抓取
我设置了一个sshlpushurl=”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名称:29418
),一切正常
所以我很困惑,为什么git不使用用户名!!!!
我检查了git config--local--list
,本地没有设置任何内容!!!
只有全局git配置具有user.name和user.email user.name和
user.email
以任何方式对身份验证进行配置。它们只影响您在提交或标记中输入的个人姓名和电子邮件地址
如果将用户名放入推送URL中对您有效,那么就这样做:这是最简单、最简单的方法。使用GitHub或GitLab等站点的每个用户都必须在URL中输入用户名(
git
),这样做应该不会有问题。如果不指定用户名,默认值由OpenSSH确定,通常默认为本地用户的用户名,尽管它区分大小写。如果需要,您也可以在~/.ssh/config
中显式覆盖它,但在URL中指定它可能更容易。谢谢您的回答。正如您所说,我最后在~/.ssh/config:)中添加了一个主机配置,它运行良好。事实上,我正在对多个项目使用回购清单,并且我无法将用户名放在问题所在的共享清单中。