报错信息如下
kylin@kylin-pc:~/桌面$ systemctl status ssh.service ● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; disabled; vendor preset: enabled) Active: failed (Result: exit-code) since Thu 2025-10-16 16:23:48 CST; 23s ago Docs: man:sshd(8) man:sshd_config(5) Process: 11517 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=255/EXCEPTION) 10月 16 16:23:48 kylin-pc systemd[1]: ssh.service: Scheduled restart job, restart counter is at 5. 10月 16 16:23:48 kylin-pc systemd[1]: Stopped OpenBSD Secure Shell server. 10月 16 16:23:48 kylin-pc systemd[1]: ssh.service: Start request repeated too quickly. 10月 16 16:23:48 kylin-pc systemd[1]: ssh.service: Failed with result 'exit-code'. 10月 16 16:23:48 kylin-pc systemd[1]: Failed to start OpenBSD Secure Shell server
分析报错信息:
从报错信息来看,ssh.service
启动失败的核心原因是 sshd
服务的配置文件检测不通过(ExecStartPre=/usr/sbin/sshd -t
执行失败,退出码 255)。sshd -t
是用于检测 sshd
配置文件(/etc/ssh/sshd_config
)语法和合法性的命令,失败通常意味着配置文件存在错误。
解决办法:
执行命令:
ylin@kylin-pc:~/桌面$ sudo /usr/sbin/sshd -t
报错信息:Privilege separation user sshd does not exist
sshd 服务依赖的 "权限分离用户"(sshd 用户)不存在。这是 sshd 的安全机制要求,需要一个低权限的 sshd 用户来运行服务的非特权部分,若该用户缺失则无法启动。
# 创建缺失的权限分离目录
sudo mkdir -p /run/sshd
# 设置目录所有者为 root(确保权限安全)
sudo chown root:root /run/sshd
# 设置目录权限(仅 root 可写,其他用户可读可执行)
sudo chmod 755 /run/sshd
# 创建 sshd 系统用户(无登录权限,主目录为 /var/empty)
sudo useradd -r -d /var/empty -s /usr/sbin/nologin sshd
问题解决
