Linux如何开启Root直接SSH登录?配置步骤与常见问题-05互联
>

新闻中心 / Linux如何开启Root直接SSH登录?配置步骤与常见问题

Linux如何开启Root直接SSH登录?配置步骤与常见问题

发布时间:2026/10/7 19:06:57

Root直接SSH登录,是指通过SSH客户端,以root用户名连接Linux服务器,登录后直接获得系统管理员权限。能否登录,取决于SSH服务配置、Root账户状态以及所使用的身份验证方式。

本文以使用OpenSSH的Linux服务器为例,介绍开启Root远程登录的操作流程。Ubuntu、Debian等系统可参考,实际配置以服务器当前环境为准。

一、开启Root登录前需要准备什么?

首先,确认能够使用具有管理员权限的账户登录服务器,或者能够进入服务商提供的VNC、串行控制台等管理入口。

修改前备份SSH主配置文件及准备调整的附加配置文件,并保留当前连接。新窗口成功登录以前,不要关闭原有管理会话。

同时,确认服务器防火墙和云平台安全组允许你的管理IP访问SSH端口。默认端口通常为22,如果已经修改,应使用实际端口。

Root拥有完整系统权限。长期使用时,优先选择密钥认证,并限制允许连接的来源IP。

二、找到SSH服务端配置文件

使用具备管理员权限的编辑器打开:

/etc/ssh/sshd_config

注意文件名是sshd_config,另一个名为ssh_config的文件属于客户端配置。

还应检查主配置中的Include引用。例如Ubuntu通常会加载:

/etc/ssh/sshd_config.d/*.conf

OpenSSH的大多数配置项采用最先读取到的值。因此,只在主文件末尾追加设置,可能不会改变最终结果。应检查实际读取顺序、重复配置,以及Match条件块对Root连接的影响。[1][2]

三、开启Root密码SSH登录

如果需要使用Root密码连接,在适用的全局配置位置设置以下项目,避免误放入无关的Match条件块:

PermitRootLogin yes
PasswordAuthentication yes
PermitEmptyPasswords no

这些配置分别表示允许Root登录、允许密码认证,以及禁止空密码认证。注意,全局PasswordAuthentication也会影响其他账户,不仅影响Root。[1]

配置行前面不能带有“#”,否则该行只是注释。

接着,通过系统管理员账户或服务商提供的系统密码重置功能,为Root设置独立、足够长且不重复使用的密码。确认修改的是操作系统Root密码,而不是网站后台或服务器面板密码。

部分云镜像默认锁定Root密码,或者设置了额外认证条件。仅修改上述配置,并不保证账户已经具备密码登录条件。

四、使用密钥直接登录Root

Root直接SSH登录并不一定需要开启密码认证。若采用密钥登录,可设置:

PermitRootLogin prohibit-password
PubkeyAuthentication yes

其中,prohibit-password禁止Root使用密码和键盘交互认证,但仍可允许公钥认证。[1]

在本地SSH客户端生成密钥对,将公钥添加到服务器Root账户使用的授权公钥文件,常见路径为:

/root/.ssh/authorized_keys

保留文件中仍需使用的已有公钥,每个公钥独占一行。私钥保留在本地,不要上传到服务器或发送给他人。

检查目录和文件归Root所有,常用权限分别为:.ssh目录700,authorized_keys文件600。若服务器自定义了AuthorizedKeysFile,应使用实际配置的位置。

连接时,在客户端填写root用户名并选择对应私钥。

五、检查配置并重新加载SSH服务

保存修改后,先通过OpenSSH的配置检查功能验证语法,检查通过后再重新加载服务。命令行环境中,管理员可以使用sshd -t检查语法,用sshd -T查看有效配置;存在Match规则时,还需要结合实际连接条件检查。[2]

重点确认PermitRootLogin以及所选认证方式对应的配置已经生效。语法正确不等于一定能够登录,仍需实际连接测试。

通过系统服务管理功能重新加载SSH服务;若环境不支持重新加载,再使用重启方式。不同发行版的服务名称可能为ssh或sshd。

接着新建一个SSH连接,填写服务器IP、实际端口及小写用户名root,选择密码或私钥认证。首次连接时,通过可信渠道核对服务器主机密钥指纹。

确认新连接成功后,再关闭旧会话。如果失败,保留旧会话排查;必要时恢复备份配置,重新检查并加载服务。

六、Root无法SSH登录怎么排查?

连接表现优先检查的项目
连接超时IP、端口、网络连通性、防火墙及安全组
Connection refusedSSH服务是否运行、目标端口是否监听、网络设备是否主动拒绝
Permission denied用户名、密码或私钥、Root登录策略及账户限制
提示只能使用publickey是否只允许密钥认证、是否加载了正确的私钥
修改配置后没有变化Include读取顺序、重复项、Match规则及服务是否重新加载
密钥正确仍被拒绝公钥内容、文件路径、权限、属主以及账户或安全策略限制

如果服务器配置了AllowUsers、DenyUsers、用户组限制或多重认证要求,还要确认Root符合对应规则。不要为排查问题直接删除已有访问控制。

查看服务器端SSH认证日志,通常可以进一步区分密码错误、公钥被拒绝、账户受限等原因。

七、常见问题

设置PermitRootLogin yes后为什么仍然不能登录?

该选项只负责允许Root通过SSH登录。密码认证是否开启、账户是否可用、其他访问规则以及配置是否生效,仍会影响最终结果。

prohibit-password是否表示禁止Root登录?

不是。它禁止Root使用密码和键盘交互认证,仍可通过已正确配置的公钥进行登录。

开启Root登录需要修改SSH端口吗?

不需要。Root登录策略与监听端口是不同设置。使用现有端口即可,客户端、防火墙及安全组应保持一致。

如何重新禁止Root远程登录?

先确认普通管理员账户能够登录并正常提权,再将有效配置中的PermitRootLogin设为no,完成配置检查后重新加载SSH服务。