git push提示Permission denied (publickey)
环境:
- Windows 10系统;
我有一个github.com账号,一个gitlab.com账号,在Windows系统上的配置如下:
其中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代码时,被拒绝:
接下来我执行如下操作:
这样就提交成功了,但是下次提交代码时还是会被拒绝,每次都需要eval(ssh-agent)
->ssh-add
-> git push
这个样操作,请问怎么解决这个问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
这个问题已经解决,将执行的命令加入到Git安装目录的
D:\Programs\Git\etc\bash.bashrc
即可,具体参考这里:解决Windows平台git多个账号时,总是需要eval $(ssh-agent)问题
=============2019年6月11日更新================
提供另一种更友好的解决方式:同一台电脑为不同Github账号或Gitlab账号配置多个ssh keys;
git push
的数据协议有两种方式:ssh
和http
。题主可以先试一下
http
方式看能否成功。只需在git config
中修改remote
地址为http
方式即可。如果可以的话,猜测是 gitlab 的 ssh 服务端(应该有个
known_hosts
文件)没有保存你的客户端公钥文件,导致每次连接都得ssh-add
。设置 SSH keys 试下 https://github.com/settings/keys
gitlab 也是差不多的设置
这样应该是比较好的处理方式