上一篇
Linux怎样重启SSH服务?
- Linux
- 2025-07-05
- 5
重启Linux的SSH服务常用命令:,1. **Systemd系统**: sudo systemctl restart sshd (或 sudo systemctl restart ssh),2. **SysVinit系统**: sudo service sshd restart (或 sudo service ssh restart)
重启SSH服务的核心命令
根据Linux发行版选择对应命令:
-
Systemd系统(Ubuntu 16.04+/Debian 8+/CentOS 7+)
sudo systemctl restart sshd # CentOS/RHEL/Fedora sudo systemctl restart ssh # Ubuntu/Debian -
SysVinit系统(旧版Debian/Ubuntu/CentOS 6)
sudo service ssh restart # Debian/Ubuntu sudo service sshd restart # CentOS 6 -
直接调用初始化脚本
sudo /etc/init.d/ssh restart # Debian/Ubuntu sudo /etc/init.d/sshd restart # CentOS
操作步骤详解
-
检查SSH服务状态(重启前)
确认服务是否运行,避免误操作:
输出中显示 active (running) 表示服务正常。
-
重启SSH服务
执行对应发行版的命令(见第一部分),例如Ubuntu:
sudo systemctl restart ssh -
验证重启结果
- 检查服务状态: sudo systemctl status sshd
- 查看SSH端口(默认22)是否监听: sudo ss -tuln | grep :22
-
连接中断风险
- 重启不会断开现有连接:已建立的SSH会话会保持(除非修改了监听端口或MaxStartups等关键参数)。
- 新配置即时生效:重启后新连接将应用新配置(如sshd_config中的设置)。
-
替代方案:重载配置(无需重启)
修改配置文件后,可仅重载配置而不中断服务:
sudo systemctl reload sshd # 或 ssh
适用场景:修改端口、密钥算法等非会话相关参数。
-
确保备选访问途径
- 重启前建议通过本地控制台或VNC登录服务器,防止网络配置错误导致失联。
- 测试命令语法:使用 systemctl restart sshd --dry-run(部分发行版支持)预检查。
-
开机自启设置
避免服务器重启后SSH未启动:
sudo systemctl enable sshd # 启用自启 - 启动失败常见原因
- sshd_config 语法错误:用 sudo sshd -t 检查配置。
- 端口冲突:Address already in use 需修改端口或结束占用进程。
- SELinux/防火墙拦截:临时禁用 setenforce 0 或放行端口。
- 查看日志定位问题 journalctl -u sshd -xe # Systemd日志 tail -f /var/log/auth.log # Debian/Ubuntu tail -f /var/log/secure # CentOS/RHEL
- 修改默认SSH端口(如 Port 2222)减少扫描攻破。
- 禁用root登录:PermitRootLogin no。
- 使用密钥认证替代密码。
- 配置防火墙(如ufw或firewalld)仅允许可信IP访问。
故障排查
安全建议
引用说明基于Linux官方文档(OpenSSH)及主流发行版实践指南(Ubuntu、CentOS),操作前请确认您的系统版本,必要时参考对应发行版手册。

关键注意事项