Fedora 33 中的 ssh 错误 sign_and_send_pubkey:不支持相互签名

apo*_*nux 2 fedora ssh git

从centos迁移到fedora 33后,我尝试克隆一个git存储库,然后出现此错误:

git clone git@bitbucket.org-xxx:abc/myproject.git
克隆到'myproject'...
sign_and_send_pubkey:不支持相互签名
git@bitbucket.org:权限被拒绝(公钥)。
致命:无法从远程存储库读取。

请确保您拥有正确的访问权限
并且存储库存在。

我已经检查了权限、密钥,甚至创建了新密钥,但仍然存在错误。

apo*_*nux 5

谷歌搜索一段时间后,我在其他相关错误中找到了答案: SSH不断跳过我的公钥并要求输入密码

新的 openssh 版本 (7.0+) 弃用了 DSA 密钥,并且默认情况下不使用 DSA 密钥(不在服务器或客户端上)。不再推荐使用这些密钥,因此如果可以,我建议尽可能使用 RSA 密钥。

如果您确实需要使用 DSA 密钥,则需要使用以下命令在客户端配置中明确允许它们

PubkeyAcceptedKeyTypes +ssh-dss

应该足以将该行放在 ~/.ssh/config 中,因为详细消息试图告诉您。

谢谢Jackuje

附录:可以在 /etc/ssh/ssh_config 中添加这一行,但最后,在 Include 之后,仍然有效。