git push提示Permission denied (publickey)

环境:

  • 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这个样操作,请问怎么解决这个问题?

阅读 8.3k
3 个回答

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进