这是【Git 教程系列第 26 篇】,如果觉得有用的话,欢迎关注专栏。
注:
如果你是因为升级系统到 Ventura 后遇到的这个问题,可以直接看第三步的解决方案,前两步是我自己的写作习惯,只是记录一下这个过程,当然你也能从中读到更多的信息。
文章目录
- 一:问题描述</font>
- 二:解决过程</font>
- 三:解决方案</font>
一:问题描述
因为项目的 Xcode 版本要更新到 14,我自己的 Mac 电脑系统版本是 Catalina 10.15.7 的,不兼容 Xcode 14 版本,所以只能升级 Mac 系统了,然后就升到了 Ventura 13.0.1。
升级后用 git pull 拉取代码的时候,提示让我输入密码,我以为是升级系统后的安全验证,就输入了密码。
我能确定输入的密码是正确的,但却提示
Permission denied, please try again(权限被拒绝,请重试).
然后又不信自的再次输入密码,第二次提示的和第一次一样,第三次系统认为的“输入错误”后,提示
Permission denied (publickey,password).权限被拒绝
,还让我确认项目是否存在
如下图所示
情况也就是这么个情况,1 个小时前在公司项目拉取还是好好的呢,这不是开玩笑吗?盘它。
二:解决过程
- 重启,然而并没有用。
- 通过
vi /etc/ssh/sshd_config
查看和根据相关文章更改某些字段的值(如把 PermitRootLogin 的值由 no 改为 yes),然而并没有什么卵用。 - 既然它提示了权限问题,我就先去项目里查看远端里配置的 SSH Key 是不是出现了问题,然而没有问题。
- 最后就想着是不是需要重新配置一次 SSK Key,于是就重新配置了,然而还是没有用。
这也不行,那也不行,男人不能说自己不行啊。
然后就想着,难道是升级后,SSH 更改了验证方式?然后就找到了一篇文章,点击查看原文
文章里说的很清楚,为什么会引发这个问题,以及如何解决的,一种是兼容以前的 ssh-rsa 算法,另外一种是用 Ed25519 算法代替以前的 ssh-rsa 算法,我用的是后者,所以做下记录。
三:解决方案
既然是用 Ed25519 算法代替以前的 ssh-rsa 算法,所以就要删除掉远端的 SSH Key,重新用 Ed25519 算法配置一次公钥到远端就行了。
在终端执行命令 ssh-keygen -t ed25519
,然后连续按 3 次 Enter 键,如下图所示
然后在本地的 .ssh 文件夹下会生成两个文件,其中 id_ed25519 文件中的内容就是我们需要添加到远端 SSH Key 的,
如下图所示
至于如何配置 SSH Key,针对不同的系统我也写过相关流程,链接如下
- Mac 配置 SSH-Key
- Windows 配置 SSH-Key
博客中写的很详细,不懂的一步一步根据提示来就行了。
至此,Mac 升级系统到 Ventura 后,Git 公钥报 Permission denied 错误问题的解决方案就说到这里了。
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。
结束语
最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。