git push提示Permission denied (publickey)

发布于 2022-09-07 21:01:55 字数 923 浏览 9 评论 0

环境:

  • Windows 10系统;

我有一个github.com账号,一个gitlab.com账号,在Windows系统上的配置如下:

clipboard.png

其中rxwangwb_rsa是github的私钥,gitlab_rxwangwb_rsa是gitlab的私钥。config文件的内容如下:

#default github
Host github.com
 HostName github.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/rxwangwb_rsa 
Host gitlab
 HostName gitlab.com
 PreferredAuthentications publickey
 IdentityFile ~/.ssh/gitlab_rxwangwb_rsa

我的使用情形,github的是公共仓库,而gitlab是私人仓库。
我在gitlab push代码时,被拒绝:

clipboard.png

接下来我执行如下操作:

clipboard.png

这样就提交成功了,但是下次提交代码时还是会被拒绝,每次都需要eval(ssh-agent)->ssh-add -> git push这个样操作,请问怎么解决这个问题?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

墟烟 2022-09-14 21:01:55

这个问题已经解决,将执行的命令加入到Git安装目录的D:\Programs\Git\etc\bash.bashrc即可,

# add github_cobcmw
eval $(ssh-agent)
ssh-add ~/.ssh/rxblog_rsa

具体参考这里:解决Windows平台git多个账号时,总是需要eval $(ssh-agent)问题

=============2019年6月11日更新================

提供另一种更友好的解决方式:同一台电脑为不同Github账号或Gitlab账号配置多个ssh keys

终止放荡 2022-09-14 21:01:55

git push 的数据协议有两种方式:sshhttp

题主可以先试一下 http 方式看能否成功。只需在 git config 中修改 remote 地址为 http 方式即可。

如果可以的话,猜测是 gitlab 的 ssh 服务端(应该有个 known_hosts 文件)没有保存你的客户端公钥文件,导致每次连接都得 ssh-add

深白境迁sunset 2022-09-14 21:01:55

设置 SSH keys 试下 https://github.com/settings/keys
gitlab 也是差不多的设置
这样应该是比较好的处理方式

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文