前言:最近给笔记本装了fedora33,用着很不错,装了deepin的dde桌面,虽然bug不少,但是很喜欢dde的桌面风格。
使用过程中发现了一个问题,如下:
我在重装系统前,保存了用户目录的".ssh"文件夹,省的以后重新在github、gitee上传公钥,装好fedora以后,直接将“.ssh”文件夹覆盖了过去,当时没发现什么问题,但是后来从gitee上clone仓库的时候,发现不能克隆,提示公钥不对。执行命令“ssh -T git@gitee.com”之后,会报如下错误:
git@gitee.com: Permission denied (publickey).
乍一看是公钥错了,但是比对了一下gitee上的公钥,是正确的。然后测了以下github,执行命名"ssh -T git@github.com",结果如下:
Hi xxx! You've successfully authenticated, but GitHub does not provide shell access.
显示这个说明是可以正常访问github的,这就很奇怪了,同样的公钥,在github上能用,gitee上不行。
执行命令"ssh -T git@gitee.com -vvv",发现debug日志中有几行这样的代码:
send_pubkey_test: no mutual signature algorithm
然后经过多方检索,终于在这里发现了临时的解决办法。(https://forum.gitlab.com/t/gtilab-com-refuses-ssh-connection-but-only-sometimes/45057/4)
就是修改"~/.ssh/config"文件,添加如下配置,实测有用:
Host gitee.com
PubkeyAcceptedKeyTypes=+ssh-rsa
这可能是fedora33的一个bug,此链接中给出了另一个办法(https://bodhi.fedoraproject.org/updates/FEDORA-2020-413ab3bca3),执行如下命令:
sudo dnf upgrade --advisory=FEDORA-2020-413ab3bca3
看样子是对ssh做了一个修复,但是我执行后输出:
没有必须的安全更新, 但是 0 的更新可用
依赖关系解决。
无需任何处理。
完毕!
没有作用
目前反正问题暂时解决了,因为比较忙,我也懒得找继续原因了。在这里还要注意一点,".ssh"文件夹以及里面的文件权限不能大于777,最好用chmod全部设置成600,否则也会出问题,而且这是一个比较容易被忽略的问题。