git pull remote access denied(Public Key error)

偶尔会遇到git pull 或push的时候提示 git pull remote access denied.

git@bitbucket.org: Permission denied (publickey). Could not read from remote repository.

查找解决方案时发现ssh-agent里面的密匙被莫名的原因清空了, 解决方案转自:https://www.jianshu.com/p/695facbeb26c

因为bitbucket的私有库是免费的。所以在做自己的项目的时候,就将代码托管到bitbucket上了。
今天往Bitbucket上面push代码,一直提示Permission denied(publickey)

开始以为是ssh key的问题,以为是/.ssh/config文件中没有写好IndentityFile,查看了/.ssh/config文件发现没有错误。

遂google之!

结果网上都是讲ssh key没有添加或者错误。于是重新生成了一遍并添加到bitbucket中。问题还是没有解决!

最后总算在一篇博客中找到了,原址忘记了。引起错误原因是没有添加ssh key到authentication agent中。

使用ssh-add -l可以查看agent中是否有ssh key。

解决步骤大致如下:

1.确认SSH key有没有添加到帐户。

2./User/.ssh/config中有没有添加IndentityFile ~/.ssh/yourkeyfile

3.使用测试命令ssh -v yourname@bitbucket.org,查看错误信息

如果无法正常连接上,则执行第四步

4.ssh-add -l 看是否有key添加到agent

5.ssh-add ~/.ssh/yourkeyfile

参考ssh-add详解(转载于https://my.oschina.net/itlzm/blog/1922085):

ssh-add命令是把专用密钥添加到ssh-agent的高速缓存中。该命令位置在/usr/bin/ssh-add

语法

ssh-add [-cDdLlXx] [-t life] [file ...]
ssh-add -s pkcs11
ssh-add -e pkcs11

选项

-D:删除ssh-agent中的所有密钥.
-d:从ssh-agent中的删除密钥
-e pkcs11:删除PKCS#11共享库pkcs1提供的钥匙。
-s pkcs11:添加PKCS#11共享库pkcs1提供的钥匙。
-L:显示ssh-agent中的公钥
-l:显示ssh-agent中的密钥
-t life:对加载的密钥设置超时时间,超时ssh-agent将自动卸载密钥
-X:对ssh-agent进行解锁
-x:对ssh-agent进行加锁

实例

1、把专用密钥添加到 ssh-agent 的高速缓存中:

ssh-add ~/.ssh/id_dsa

2、从ssh-agent中删除密钥:

ssh-add -d ~/.ssh/id_xxx.pub

3、查看ssh-agent中的密钥:

ssh-add -l
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值