我想强制所有用户在通过 SSH / SFTP 登录到运行最新版本* OpenSSH 的 Linux 服务器时仅使用 ed25519类型的密钥。
对 SSH 密钥进行控制的一些一般原因可能包括:
在许多情况下,SSH 密钥在身份和访问管理规划、实施和审计中被完全忽略了。用户已经能够在没有监督和控制的情况下创建和安装密钥。这导致违反公司访问策略和危险的后门。
信息安全从控制谁可以访问系统和数据开始。如果没有对访问的控制,就没有安全性、机密性、完整性和持续运行的保证
来源:https : //www.ssh.com/iam/ssh-key-management/
我并不是要完成完整的密钥管理实施。而且我不希望删除用户管理自己的 SSH 密钥(包括添加、删除、更改密钥)的能力。我唯一的目标是强制使用 ed25519 类型的密钥。
如何在保持上述用户权限和保持此设置的同时实现这一点?
AuthorizedKeysFile .ssh/authorized_keys
我在此服务器上使用的主要(非默认)sshd_config 设置包括:
The only host key enabled:
HostKey /etc/ssh/ssh_host_ed25519_key
PermitRootLogin no
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM yes
AuthorizedKeysFile .ssh/authorized_keys
KexAlgorithms curve25519-sha256@libssh.org
MACs hmac-sha2-512-etm@openssh.com
Ciphers chacha20-poly1305@openssh.com
AllowUsers user@host ...
但是,通过这些设置,用户仍然可以选择较旧的用户身份密钥类型并使用它来登录。我现在唯一的目标是阻止用户获得访问权限,除非通过 ed25519 用户身份密钥。如何?
*实际运行:OpenSSH_8.1p1、OpenSSL 1.1.1d