必须重启sshd服务使ssh安全配置生效,但需先执行sudo sshd -t验证配置语法及文件权限,确认“config test succeeded”后再用sudo systemctl restart sshd等命令重启,并通过连接测试和日志检查闭环验证。

修改完 SSH 安全配置(比如禁用密码登录、改端口、限制用户等)后,必须重启服务才能让新设置生效。但直接重启可能失败——常见原因是权限问题或语法错误,尤其在强化安全后容易忽略文件权限是否合规。
先验证配置再重启
别跳过这步。运行以下命令检查 /etc/ssh/sshd_config 语法和关联文件权限:
- sudo sshd -t —— 若输出 Config test succeeded,说明配置合法、权限也合规;
- 若报错如 Permissions for '/etc/ssh/ssh_host_rsa_key' are too open,说明私钥权限不是 600,需先修复(见下文);
- 若提示某行语法错误,回到配置文件修正对应行(比如 PasswordAuthentication no 后多了一个空格也可能报错)。
确认服务名并执行重启
不同发行版服务名略有差异,常用命令如下:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 大多数现代系统(Ubuntu 20.04+、Debian 11+、CentOS 8+、RHEL 8+): sudo systemctl restart sshd
- 部分旧版 Debian/Ubuntu(如 16.04)或精简系统: sudo systemctl restart ssh
- 兼容方式(几乎通用): sudo service sshd restart 或 sudo /etc/init.d/ssh restart
检查是否真正生效
重启后不能只看 systemctl status 显示 active,要闭环验证:
- 再次运行 sudo sshd -t 确保无报错;
- 查状态:sudo systemctl status sshd,确认是 active (running),且最近日志无 Failed to start;
- 新开一个终端,尝试连接:ssh -p [端口] 用户@本机IP,验证新规则(如密码登录是否被拒、密钥是否仍可用);
- 查看实时日志辅助判断:sudo journalctl -u sshd -n 20 -f,观察连接尝试是否符合预期。
特别注意权限敏感项
启用密钥认证、禁用密码后,OpenSSH 对权限更严格。以下文件权限不合规会导致服务启动失败或配置静默不生效:
- 主机私钥(/etc/ssh/ssh_host_*.key):必须 600,可用 sudo chmod 600 /etc/ssh/ssh_host*_key 批量修复;
- /etc/ssh/sshd_config:推荐 644(root 可写,其他可读),严禁 664、755;
- 用户家目录下的 ~/.ssh/authorized_keys:必须 600,且 ~/.ssh 目录必须 700。










