之前自己写着玩的一个项目已经很久没有更新了,现在又想碰上将它重新捡起来。

毕竟有些小伙伴还是很期待的,同时我也希望能做出点有价值的东西。

无奈可能是尘封已久、年久失修,就像疏于看护照顾的孩子一样,居然状况频出。

没想到重新捡起来的项目这一时半会儿竟然不太好搞,折腾得有点头晕了。


问题显现

别的不说,好不容易开发调试环境搭建了起来,部分代码问题也处理了,过后还算正常可以跑起来了。

结果没成想到了提交仓库这一步居然被卡住了!

哎呀我去,你们瞧瞧,提交代码变更时,它竟然说拒绝访问。


怎么肥四?

有点滑稽哈,之前我可是一直这么玩的,我明明有 ssh 密钥,明明啥也没动过啊!

好吧,换个姿势再来一次,我用测试命令看看是不是真的被拒绝访问了。

// 后面的域名为你具体在 ~/.ssh/config 中指定的域名
// 我这儿是 ssh -T 该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。
ssh -T 该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。
 

我的天,发现结果还是一样大大的四个字:拒绝访问!


一时间我就在想,我做错了什么?

是不是这么长时间对她太冷淡了?

大家都知道,我是个好男人,于是很自然地接下来我就开始反思反省。


难道我的远程仓库设置不对?

git remote -v
 

完全木有问题啊!


再上 Github 看看,SSH Key 好端端地躺着刷抖音呢!

(很遗憾我忘记抓图了,这张图片是后补的,很容易看出更新时间有问题,但我发誓 SSH key 的确没动过。)


或者,难道是本地公钥文件丢了?

ls -al ~/.ssh
 

查看下来也都好好地待在 .ssh 文件夹中,天太热他们也没地儿跑啊!


这也没问题,那也没问题,那不又成了一个悬疑剧了?

时间紧、任务重,还是求助网络吧!


尝试解决

一番查找一下来,估计多半是时间久远导致的 SSH key 失效。

好吧,我们一起来看看如何修复这个问题。


首先,参考网上重新添加一下本地的 ssh key

// 开启密钥管理器
ssh-agent bash

// 添加密钥
ssh-add ~/.ssh/id_rsa_sysadm-cc
 

毫无悬念,添加成功,本来这 key 就没去动过嘛!


到这儿,按照有些网上的说法应该是可以修复了,但是我测试过,没卵用啊!

其实我猜测原因在于原来的 ssh key 时间过久完全过期,问题主要出在 Github 远程仓库端而非本地。

如果是这样的话,那我们只能重新生成 ssh key 了,当然还是用原来的 .pub 公钥文件。


好,我们回到 Github 页面,找到左侧导航栏的 SSH and GPG keys 一项。

然后点击 New SSH key 来重新新建一个 SSH key


我们将 id_rsa_xxxx.pub 文件用文本编辑器打开,复制其中的文本内容。


然后回到新建 SSH keys 的页面,将刚才复制的密钥文本填写入 Key 一栏。

此外别忘记给这个密钥起个有辨识度的名称哦!


点击 Add SSH key 按钮生成一个新的密钥键,这样应该与我们手上的公钥相匹配了。

赶紧尝试一下是否修复了问题。

我们先用测试命令试一下。

ssh -T 该邮件地址已受到反垃圾邮件插件保护。要显示它需要在浏览器中启用 JavaScript。
 

OK!测试成功了!


好,再实际提交一把试试!

完全OK,应该是没有问题了!


写在最后

这个项目大概有一年多没碰过了,究其原因应该就是时间太久,没有经常性的提交代码,出于安全等因素考虑可能 SSH Key 被官网禁用也就失效了。

对于这个问题,实际上总结下来只要一步即可完美解决,即重新生成 SSH key

当然,如果你不用原来旧的 .pub 文件而改用新的也是完全可以的,原理都一样。

另外当你生成一个新的 SSH Key 后,建议最好将原来旧的那个给删除,这样方便日后管理。

好了,虽然原理并不复杂,但在搞定之前很容易折腾人,因此我将我遇到的这个小麻烦是如何处理的过程分享给小伙伴们。

最后,希望大家少一些踩坑、少走一些弯路。

既然这个问题解决了,接下来我又要继续下一个问题的处理了,那么我们以后再来分享后面有趣的事吧!


扫码关注@网管小贾,个人微信:sysadmcc

网管小贾 / sysadm.cc



暂无评论

登录并提交评论

© 2020-present 网管小贾 | 微信公众号 @网管小贾
许可协议:CC-BY-NC 4.0 | 转载文章请注明作者出处及相关链接