看完之后这个类似的问题我不清楚如何要求 SSH 密钥user
,同时拒绝 SSH 访问root
(密钥或密码)。如果我需要成为 root,我将在以用户身份登录后使用 sudo。
我知道如何获取 SSH 密钥:
PermitRootLogin without-password
我知道如何禁止用户“root”登录:
PermitRootLogin no
我知道如何将用户列入白名单:
AllowUsers user
我不知道如何将所有这些组合在一起(或者是否有必要?- SSH 密钥可能就足够了)。我通常会通过反复试验来解决这样的答案,但我担心我会把自己锁在该服务器之外……
答案1
如果您想禁止密码登录,只需PasswordAuthentication no
在sshd_conf
服务器上进行设置即可。
我不记得具体情况了,但我认为至少没有 root 登录是默认的。
尝试以系统上的任何用户身份登录时,如果其身份没有您的公钥,~/.ssh/authorized_keys
则将要求输入密码(无论是否设置了密码或是否有可用的 shell,如果密码登录未被禁用)。
我认为你想要的只是:
密码验证否 PermitRootLogin 否
这将禁止任何 root 登录,无论是使用 ssh 密钥还是密码,并要求用户使用有效密钥登录,如该用户文件中的公钥所包含的~/.ssh/authorized_keys
。