云计算百科
云计算领域专业知识百科平台

linux远程root登录服务器报权限不足(permission denied),什么原因?

在 Linux 系统中,如果你遇到远程登录时使用 root 用户报权限不足的错误,而普通用户可以正常登录,这通常是由于系统配置或安全策略限制了 root 用户的远程登录。

以下是一些常见的原因和解决方法:

一、SSH 配置文件限制 

SSH 服务器配置文件 /etc/ssh/sshd_config 中可能有设置禁止 root 用户通过 SSH 登录。

检查 sshd_config 文件

打开 /etc/ssh/sshd_config 文件,查找以下配置项:

vim /etc/ssh/sshd_config

1.1 PermitRootLogin:控制是否允许 root 用户通过 SSH 登录。

  • 如果设置为 no 或 prohibit-password,则不允许 root 用户通过密码登录。
  • 如果设置为 without-password,则只允许 root 用户通过公钥认证登录。
  • 如果设置为 yes,则允许 root 用户通过密码登录。

示例:

PermitRootLogin no
修改为:PermitRootLogin yes

1.2 PasswordAuthentication:控制是否允许密码认证。

  • 如果设置为 no,则不允许任何用户通过密码登录。
  • 如果设置为 yes,则允许用户通过密码登录。

示例:

PasswordAuthentication no
修改为:PasswordAuthentication yes

1.3 重启 SSH 服务

修改完配置文件后,重启 SSH 服务以应用更改:

systemctl restart sshd

二、. PAM 配置文件限制

PAM(Pluggable Authentication Modules)配置文件也可能限制 root 用户的远程登录。

2.1 检查 PAM 配置文件

打开 /etc/pam.d/sshd 文件,查找是否有针对 root 用户的限制:

vim /etc/pam.d/sshd

 

2.2 查找类似以下的行:

auth required pam_listfile.so item=user sense=deny file=/etc/ssh/deniedusers onerr=succeed

这个配置会拒绝 deniedusers 文件中列出的用户登录。确保 root 用户不在这个文件中。

三、 SELinux 限制

如果系统启用了 SELinux,可能会有额外的安全策略限制 root 用户的远程登录。

3.1 检查 SELinux 状态

查看 SELinux 是否启用:

sestatus

如果 SELinux 是启用状态,检查相关的 SELinux 策略:

grep ssh /var/log/audit/audit.log | audit2allow -m mypol

 

3.2 临时将SELinux 设置为宽松模式进行测试:

setenforce 0

 

四、 其他安全工具 

某些安全工具(如 Fail2Ban、AppArmor 等)也可能限制 root 用户的远程登录。检查这些工具的配置文件,确保没有对 root 用户的限制。

五、 日志文件

查看 SSH 服务器的日志文件,获取更多详细信息。日志文件通常位于 /var/log/ 目录下:

tail -n 50 /var/log/secure

日志文件中的信息可以帮助你确定具体的问题所在。

六、总结

  • 检查 /etc/ssh/sshd_config 文件,确保 PermitRootLogin 和 PasswordAuthentication 设置正确。
  • 检查 PAM 配置文件,确保没有针对 root 用户的限制。
  • 检查 SELinux 状态,确保 SELinux 策略没有限制 root 用户的远程登录。
  • 检查其他安全工具,确保它们没有对 root 用户的限制。
  • 查看日志文件,获取更多详细的错误信息。
  • 通过以上步骤,你应该能够找到并解决 root 用户无法远程登录的问题。如果问题仍然存在,请提供更多详细的错误信息和配置文件内容,以便进一步诊断。

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » linux远程root登录服务器报权限不足(permission denied),什么原因?
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!