You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何禁用OpenSSH服务器开机自启?仅按需通过命令启动

解决OpenSSH开机自启的问题

这问题我碰到过好几次,不同Linux发行版用的初始化系统不一样,处理方式也有区别,给你分情况说清楚:

1. 如果你用的是Systemd(主流新发行版,比如Ubuntu 16.04+、Debian 9+、CentOS 7+)

这是现在最常见的情况,直接用systemctl命令就能搞定:

  • 禁用开机自启:
    sudo systemctl disable sshd
    
    (有些发行版服务名是ssh而不是sshd,如果上面的命令报错,换成sudo systemctl disable ssh)
  • 验证是否禁用成功:
    systemctl is-enabled sshd
    
    输出disabled就说明设置生效了。
  • 手动启动/停止服务:
    sudo systemctl start sshd  # 启动
    sudo systemctl stop sshd   # 停止
    

2. 如果你用的是SysVinit(老版本发行版,比如Ubuntu 14.04之前、Debian 8之前)

这类系统用的是传统的启动脚本,用update-rc.d命令配置:

  • 禁用开机自启:
    sudo update-rc.d ssh disable
    
    要是想彻底移除所有启动链接,可以用:
    sudo 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文件禁用自启:
    echo manual | sudo tee /etc/init/ssh.override
    
    这样系统就不会自动启动SSH服务了。
  • 手动启动/停止服务:
    sudo start ssh  # 启动
    sudo stop ssh   # 停止
    

先确认你的系统用的是哪种初始化系统

不确定的话,执行下面的命令看输出:

ps --no-headers -o comm 1
  • 输出systemd → 用Systemd的方法
  • 输出upstart → 用Upstart的方法
  • 输出init → 再执行init --version,如果是SysVinit就用对应的方法

内容的提问来源于stack exchange,提问作者Jeno

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:19:51