指定服务器接受的允许的客户端 SSH 密钥类型

指定服务器接受的允许的客户端 SSH 密钥类型

我有一个服务器(运行 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 服务器策略当前应用的设置。

相关内容