关于git clone或git push出现permission denied(publickey)的问题

情况说明

在github和gitlab之间频繁切换,又因为使用https每次push都要输入username和password实在是老火,又在https和ssh之间转换,有时候用的公司的email,有时候用的QQ email,有时候又切换的gmail。好嘛,自己作,经常都能遇见执行clone或者push操作是出现permission denied(publickey)的问题,这次一定要铭记,写下解决过程下次直接翻。

解决方式

首先要申明我本地是有publickey公钥的,所以我接下来的一系列说明都是针对本地有公钥的情况。
其实github上也有详细的配置SSH秘钥的说明,我只是不想每次都读一遍英文,麻烦,所以中文写一遍大概流程。
针对我这种情况,肯定是先检测本地的秘钥

  • 打开git bash
$ ls -al ~/.ssh   //检测本地的.ssh文件并列举出来

需要注意的是,如果有,文件名字会是以下之一

id_rsa.pub //我是这个
id_dsa.pub
id_ecdsa.pub
id_ed25519.pub

如果没有任何反应,不好意思,你可能得移步自己生成秘钥,然后按文档教程执行后续操作。
当然,咱们这是有的,那就接着下一步添加SSH key到ssh代理

  • git bash命令
$ eval $(ssh-agent -s)
Agent pid 59566   //这里会自动显示出pid
  • 添加SSH私钥到代理,这里根据你的文件名字替换命令中的 id_rsa
$ ssh-add ~/.ssh/id_rsa

接着把SSH公钥添加到github账号

  • 复制秘钥到粘贴板
$ clip < ~/.ssh/id_rsa.pub
  • 来到github,头像右键——Setting——SSH and GPG keys,点击New SSH key,Title随意填写,Key选项框中就把刚才复制的秘钥内容粘贴进去就可以,注意是以ssh-rsa开头

  • 大功告成,现在再试试clone和push应该就没问题了

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值