我有一个服务器(运行 openssh 8.1p1-2),其 sshd_config 配置如下,仅接受 ed25519 密钥:
PubkeyAcceptedKeyTypes [email protected],ssh-ed25519
这对我们的团队很有用。我们都只使用 ed25519 密钥。并且该指令工作正常,因为其他密钥类型被拒绝。
但是,现在我需要暂时让只能使用 rsa 密钥类型的人进行连接(根据他们无法控制的策略)。
我做了以下更改:
PubkeyAcceptedKeyTypes ssh-rsa,[email protected],[email protected],ssh-ed25519
...并重新启动 sshd:
systemctl restart sshd
根据systemctl status sshd
,sshd 状态没有错误。但是,当此人尝试连接服务器日志时显示:
sshd[12345]: userauth_pubkey: key type ssh-rsa not in PubkeyAcceptedKeyTypes [preauth]
客户端的错误很简单:
No more authentication methods to try. user@ip: Permission denied (publickey).
我不明白这个问题,因为ssh-rsa
它在 PubkeyAcceptedKeyTypes 中。我缺少什么?
答案1
我刚刚遇到这个问题...我需要添加密钥类型 rsa-sha2-512 而不是 ssh-rsa。 (还有一个 rsa-sha2-256,我不需要)。
我在 Arch 上使用 OpenSSH_8.2p1。
答案2
今天早上我在 Oracle Linux 机器上为此苦苦挣扎了太久。
如果您在相同或任何其他基于 RedHat 的发行版上运行,请检查您的sshd_config
设置是否被系统默认加密策略的设置覆盖。update-crypto-policies
有关详细信息,请参阅手册页crypto-policies
。
/etc/crypto-policies/back-ends/opensshserver.config
应显示 OpenSSH 服务器策略当前应用的设置。