git ssh window 请求公钥失败

问题

在码云上建了个练习项目,当在本地克隆项目的时候,悲剧出现了,码云服务器拒绝链接。

$ git clone git@gitee.com:hanchers/test.git
Cloning into 'test'...
git@gitee.com: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

问题排查

1、确认在码云上配置了公钥
1.1 首先本地生成密钥
ssh-keygen -t rsa -C "yourName@mail.com" 
1.2 将公钥配置在你的码云账号中

在c盘你的用户的文件夹下有一个.ssh目录,将里面生成的id_rsa.pub 用文本编辑器打开,全选复制。
然后在码云账号的公钥的位置,将上面的内容粘贴进去即可。

此时,按照正常情况就可以了。但是实际却没这么简单。

测试链接

配置好公钥好,在本地测试一下,看看是不是能够连接上码云了呢

$ ssh -T git@gitee.com
git@gitee.com: Permission denied (publickey).

如果要查看连接过程,执行如下命令

ssh -vT git@gitee.com

发现还是不行,为什么呢?
因为ssh链接gitee的过程中,在本地没有找到对应的私钥,导致匹配失败。
经过各种百度,终于找到了一个勉强可行的解决办法

ssh-agent bash --login -i

eval `ssh-agent -s`

开发ssh-agent的守护进程,然后将前面生成的私钥添加到

ssh-add ~/.ssh/id_rsa

可以通过如下命令查看是否添加成功

ssh-add -l

最后,再测试一下连接

$ ssh -T git@gitee.com
Hi hancher! You've successfully authenticated, but Gitee.com does not provide shell access.

连接成功!

克隆代码

ssh已经能够连接gitee了,下一步就是克隆代码了。

$ git clone git@gitee.com:hanchers/test.git
Cloning into 'test'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 4 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (4/4), 4.47 KiB | 4.47 MiB/s, done.

后患

前面貌似一切都很正常,问题得以解决。
但是当git命令窗口关闭后,在重新打开,就会发现,一切重归原始!!!
究其原因,还是每次ssh连接的时候,都服务找到本地的私钥,导致解析失败。

彻底解决

找到git安装目录
然后 %git-home%/etc/ssh/目录,打开文件ssh_config

IdentityFile ~/.ssh/id_rsa

可规避这个问题。
但是windows下生成的私钥不能识别的问题仍未彻底解决,尚需大神解惑。

转载于:https://my.oschina.net/wywct/blog/1859499

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值