如何禁用SSHD自动启动?


32

安装openssh-server之后,每次引导时服务器都会启动。如果我希望它是手动的,我该怎么办?

在新贵的0.6.7+版本中,我将在作业文件中添加一个“手动”节。

10.04的新贵0.6.5-8。在这种情况下,禁止ssh自动启动的首选方法是什么?

Answers:


31

将/etc/init/ssh.conf重命名为/etc/init/ssh.conf.disabled。

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled

快速,轻松和自我记录。完善。
LeartS 2014年

1
甚至比更好echo manual | sudo tee /etc/init/ssh.conf.override,请参阅如何启用或禁用服务
在这里

echo manual | sudo tee /etc/init/ssh.conf.override似乎是一个更好的答案,因为这sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled也阻止了手动启动服务器,而无需每次都将其更改回来。
Brian Z

@BrianZ ssh.conf.override对我不起作用ssh.override
fikr4n

这不是推荐的方法。您不是在告诉操作系统该服务不应运行。使用update-rc.d(或等效方法)执行此操作。
Reinier Post

19

这应该足够了:

 update-rc.d ssh enable # sets the default runlevels to on 
 update-rc.d ssh disable # sets all to off

这适用于新贵工作还是仅适用于旧的sys v init脚本?
komputes,2011年

即使您正在使用新贵(基于依赖项的启动),这也足够了
hhlp 2011年

它说System start/stop links for /etc/init.d/ssh do not exist.
fikr4n '16

7

在您的/etc/init/ssh.conf中,注释掉起始行:

# ssh - OpenBSD Secure Shell server
#
# The OpenSSH server provides secure shell access to the system.

description     "OpenSSH server"

#start on filesystem or runlevel [2345]
stop on runlevel [!2345]

respawn
respawn limit 10 5
umask 022

1
我认为,通常最好使用@komputes和hhlp提到的更通用的机制。虽然这对于单个案例来说很好。
belacqua 2012年

6

读者注意事项:

对我来说(ubuntu 14.xx)只有Bryan Agee的答案有效:/etc/init/ssh.conf:注释掉“启动文件系统或运行级别...”行

其他人为什么不呢?

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled

将导致完全停用该服务。然后就无法通过“ service ssh start”启动它。

update-rc.d ssh enable#将默认运行级别设置为on

根本不起作用(可能使用了不同的自动启动例程)

/etc/init/ssh.conf.override用“ manual”

根本行不通

触摸/ etc / ssh / sshd_not_to_be_run

也完全禁用系统

须藤apt-get install bum

不错的软件,但是它不显示ssh,所以这里无事可做

人员质疑:为什么上面的答案还在这里?启动系统是如此复​​杂,还是没有人尝试他的解决方案?O


而且我们只是在谈论Ubuntu 14.04。现在尝试找到通用解决方案...
LatinSuD

5

对于具有systemd正确方法的系统是

sudo systemctl disable ssh.service

然后

sudo systemctl stop ssh.service

1
sshd在16.04上中断了我的工作:在该命令systemctl enable ssh.service报告“找不到文件”之后,我必须清除并重新安装sshd才能使其正常工作。
BeeOnRope

3
sudo apt-get install bum

bum管理特权开始,禁用openssh-server,确认完成。


2

对于由upstart启动的ssh版本,请运行touch /etc/ssh/sshd_not_to_be_run。upstart初始化脚本检查该文件,如果存在,则不启动sshd。


2

/etc/init/ssh.config使用Ubuntu 14.04.03 的手动方法提供的.override方法不适用于我。sshd仍会自动启动。

/etc/ssh/sshd_not_to_be_run方法防止手动sshd启动。

我必须使用Brian Agee的方法删除的“开始于”行/etc/init/ssh.conf。然后手动开始sshd

sudo service ssh start

1

我有同样的问题,这是我所做的。也许这是一个小技巧,但是它运行良好,并且您无需以任何方式破坏程序。将以下内容放入您的crontab中:

@reboot sudo service ssh stop

这告诉您每次打开计算机时都cron停止ssh。使用ssh连接到另一台计算机不会受到影响,因为这只是关闭服务器服务。如果要在短时间内重新启用它,您要做的就是:

sudo service ssh start

只记得完成后将其关闭!


这可以在我的Xubuntu 16.04系统上使用,该系统当然使用systemd。我不认为这将在预先系统化的Ubuntu系统上运行。
ARandomScientist

1
正确的方法不是使用cron-job,而是使用禁用它sudo systemctl disable sshd.service,但是正如您自己提到的,您的init系统与问题所在的系统有所不同。有关较早的init系统的所有相关信息,都可以在本文的前两个答案中找到askubuntu.com/questions/19320/…–
db429
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.