我该如何配置sshd
才能仅允许选定用户进行基于密钥的访问?除了 root 用户之外,我还想限制特定用户。
答案1
你实际上问的是两个问题——我将重点讨论不太常见的问题
限制用户:
我假设有比允许登录的用户更多的用户,但这些其他用户被赋予了非 ssh 用途的帐户。有多种方法可以解决这一问题 - 但这是我喜欢做的:
- 创建新组
login
(sudo groupadd login
)。 - 将您选择的用户添加到
login
组(sudo usermod -a -G login someuser
)。 - 创造
/etc/ssh/sshd_config.d/80-login-group-or-noshell.conf
# The few people who need shell access on this host are added to the
# login group, otherwise - keep out!
Match Group *,!login
ForceCommand /usr/sbin/nologin
这假设该版本是较新的并且安装sshd_config
以 结尾Include /etc/ssh/sshd_config.d/*.conf
。当然,您可以将其粘贴到您的中,sshd_config
但这样不太干净。
锁定仅基于密钥的登录
我非常确定这是我通常安装的系统中 (F32) 的默认设置。因此,除了尝试使用服务器中暂时删除的公钥进行连接外,无需执行任何操作。非常确定您要查找的配置是PasswordAuthentication no
。