Created at 2021-10-11 00:58:08 UTC
写上一篇文章,正打算往图床传图时,发现失败了,之前一直都没碰到过
图床用某 git 平台做的,传图也就是 git push,发现报错了
一开始没仔细想,下意识地以为是 sshkey 的问题,ssh-keygen 重新生成、配置,但还是不行
只能查查别人有没有碰这问题,发现一篇🔗官方的排错文档,问题的表现虽然是一样的,都是 Permission denied,但没有我要的答案,因为实际上我们碰到的问题根源不一样(当时并没意识这一点,事后想起来的)
到这里,包括图床、github 在内所有 ssh 连接都不行了
在 🔗stackoverflow 找到第一个答案:HostKeyAlgorithms
在 🔗gitlab 论坛 找到第二个答案:PubkeyAcceptedKeyTypes
把这两个参数配置到 ~/.ssh/config
HostKeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
尝试连接 github
ssh -T git@github.com
输出结果是成功了
Hi Admin! You've successfully authenticated, but GitHub does not provide shell access.
到这里就能正常地操作 git push 和 git pull 了
找到了一些解释,在 🔗openssh 官网的 releasenote
先是在 2021-08-20 预告过 1 次
在最新的版本 2021-09-26 中,正式禁用了使用 SHA-1 的 rsa 签名
它说对用户基本无感知,只会对还在用旧的 ssh 实现的用户产生不兼容影响,这些用户可以通过上面的配置解决问题,我这次也是靠了上面的配置解决
由于对 openssh 还只停留在粗浅使用 ssh 命令的阶段,所以只知道这样做是为了安全考虑,不了解深层含义,有时间得好好读一下这些官方文档