github的ssh配置时遇到的奇葩问题:设置了公钥仍然报错git@github.com: Permission denied (publickey).

这段是个人叨叨的废话,可跳过:记录一下今天遇到的一个麻烦问题,从早上看到下午 4 点钟,总算是解决了,真是整得头皮发麻,浑身不畅。网络上随处可见 github 的配置教程,就是在本机 ssh-keygen 生成 ssh 私钥和公钥,然后把公钥配置到 github 就 ok 了,但我按照此方法还是没有效果,思前想后,也没有一点头绪。期间想过,1. 是不是复制出错了,但是仔细检查测试,并不是;2. 是不是 ~/.ssh 文件夹下的known_hosts有问题,发现删掉也无作用;3. 之前配置过 Gitee,是配置成功了,又仔细对比流程,看了看 Gitee为啥就可以,最后这个方案让我有了灵感。

如果你是由于github账号没有设置ssh公钥信息所致,那么恭喜你,非常好解决,请参考网上的大多数的教程: 这里随便给一个。我是明明设置了 ssh 公钥信息仍然连接错误。

问题是__

最后发现问题是:我的服务器有多个私钥,需要指定特定的ssh 连接用哪一个私钥。其实所有的 ssh 连接你都只用一对ssh 密钥的话就不会存在这个问题,客户端会默认使用那个唯一的私钥进行签名;悲催的是我的电脑上面之前 Gitee 生成了一对,然后我想重新生成一对,用新的这对来和 github 连接…

如何解决?ssh agent !

那么如何指定呢?可以使用 ssh agent 将所有私钥都交给它管理,它会帮助选择选择合适的密钥。
使用方法:

检查 ssh 密钥是否被加载:

ssh-add -l

如果输出中没有看到需要的密钥,那么使用命令将某个密钥交给 ssh-agent 保管

# 后面可以同时跟多个私钥
ssh-add ~/.ssh/<private_key_file>  

如果报错:“Could not open a connection to your authentication agent.” 说明你的ssh-agent并没有运行;那么使用下面的命令运行ssh agent

# macOS/Linux
eval `ssh-agent`

# 在Windows中的git-bash中
eval $(ssh-agent) 

启动了之后再 ssh-add ~/.ssh/<private_key_file> 就 ok 啦!!!

希望此文可以帮助到遇到相同问题的同学们,免遭相同的痛苦!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值