如何禁用OpenSSH服务器开机自启?仅按需通过命令启动
解决OpenSSH开机自启的问题
这问题我碰到过好几次,不同Linux发行版用的初始化系统不一样,处理方式也有区别,给你分情况说清楚:
1. 如果你用的是Systemd(主流新发行版,比如Ubuntu 16.04+、Debian 9+、CentOS 7+)
这是现在最常见的情况,直接用systemctl命令就能搞定:
- 禁用开机自启:
(有些发行版服务名是sudo systemctl disable sshdssh而不是sshd,如果上面的命令报错,换成sudo systemctl disable ssh) - 验证是否禁用成功:
输出systemctl is-enabled sshddisabled就说明设置生效了。 - 手动启动/停止服务:
sudo systemctl start sshd # 启动 sudo systemctl stop sshd # 停止
2. 如果你用的是SysVinit(老版本发行版,比如Ubuntu 14.04之前、Debian 8之前)
这类系统用的是传统的启动脚本,用update-rc.d命令配置:
- 禁用开机自启:
要是想彻底移除所有启动链接,可以用:sudo update-rc.d ssh disablesudo update-rc.d ssh remove - 手动启动/停止服务:
sudo /etc/init.d/ssh start # 启动 sudo /etc/init.d/ssh stop # 停止
3. 如果你确实在用Upstart(比如Ubuntu 12.04-14.04)
你之前修改/etc/init/ssh.conf的方法可能没生效,因为Upstart优先读取override文件。正确的做法是创建一个手动启动的override:
- 创建override文件禁用自启:
这样系统就不会自动启动SSH服务了。echo manual | sudo tee /etc/init/ssh.override - 手动启动/停止服务:
sudo start ssh # 启动 sudo stop ssh # 停止
先确认你的系统用的是哪种初始化系统
不确定的话,执行下面的命令看输出:
ps --no-headers -o comm 1
- 输出
systemd→ 用Systemd的方法 - 输出
upstart→ 用Upstart的方法 - 输出
init→ 再执行init --version,如果是SysVinit就用对应的方法
内容的提问来源于stack exchange,提问作者Jeno
相关产品推荐
相关产品推荐

