原因:PermitRootLogin prohibit-password
是SSH配置文件中的一个选项,用于控制是否允许 root 用户通过SSH登录到系统,并且只允许通过密钥身份验证方式进行登录。这意味着只有拥有正确的密钥(公钥-私钥对)的用户可以通过SSH登录为root用户,密码方式将被禁止
# 将PermitRootLogin prohibie-password 修改为:PermitRootLogin yes 即可
vim /etc/ssh/sshd_config
# 更改完以后,先看看ssh的进程
ps -e | grep ssh
# 如果有进程就使用以下命令清除
ps -e | grep ssh | awk '{print $1}' | xargs kill -9
# 然后再重启一下
systemctl restart ssh
解决思路:理解这几种ssh
的配置选项就可以了
-
PermitRootLogin yes
: 允许 root 用户通过 SSH 登录。这意味着 root 用户可以通过 SSH 连接到系统,拥有最高权限,可以执行系统中的任何操作。 -
PermitRootLogin without-password
: 允许 root 用户通过 SSH 无需密码登录,但仅在使用密钥身份验证(公钥-私钥对)的情况下。这增加了一层额外的安全性,因为只有拥有正确私钥的用户才能访问系统。 -
PermitRootLogin prohibit-password
:与上述选项类似,允许root用户通过SSH登录,但只允许使用密钥身份验证方式。与"without-password"不同的是,密码登录是被明确禁止的。只有拥有正确私钥的用户才能登录为root用户。 -
PermitRootLogin no
: 禁止 root 用户通过 SSH 登录。这是最安全的设置,因为不允许 root 用户通过 SSH 连接到系统,减少了潜在的安全风险,因为 root 用户通常具有最高的系统权限。
(配置公钥要将公钥存放在系统root用户相应文件中)