Как отключить автоматический запуск SSHD?

32

После установки openssh-сервера, сервер запускается при каждой загрузке. Если я хочу, чтобы это было руководство, что мне нужно сделать?

В версии 0.6.7+ я хотел бы добавить «ручной» раздел в файл задания.

10.04 выскочка 0.6.5-8. Каков предпочтительный способ отключить автоматический запуск SSH в этом случае?

komputes
источник

Ответы:

31

Переименуйте /etc/init/ssh.conf в /etc/init/ssh.conf.disabled.

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
komputes
источник
Быстро, легко и самодокументируется. Отлично.
LeartS
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также не позволяет запустить сервер вручную, не меняя его каждый раз.
Брайан 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
hhlp
источник
Это работает с выскочкой или просто старыми скриптами sys v init?
Компуты
Этого должно быть достаточно, даже если вы используете upstart (загрузка на основе зависимостей)
hhlp
Это говоритSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n
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. Хотя это хорошо для одного случая.
Белаква
6

Примечание для читателя:

для меня (ubuntu 14.xx) сработал только ответ Брайана Эйджи: /etc/init/ssh.conf: закомментируйте строку "start on filesystem or runlevel ..."

почему другие не делают?

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

приведет к полной деактивации услуги. Затем он больше не запускается через «service ssh start».

update-rc.d ssh enable # устанавливает уровни запуска по умолчанию на

просто не работает (возможно, использует другую процедуру автозапуска)

/etc/init/ssh.conf.override с «руководством»

просто не работает

коснитесь / etc / ssh / sshd_not_to_be_run

также полностью отключает систему

sudo apt-get установить бум

хорошее программное обеспечение, но оно не показывает ssh, так что тут ничего не поделаешь

человек, спрашивающий: почему вышеупомянутые ответы даже здесь? система запуска настолько сложна или никто не пробует его решения? оо

TheTrowser
источник
И мы говорим только об Ubuntu 14.04. Теперь попробуйте найти универсальное решение ...
LatinSuD
5

Для системы, имеющей systemdправильный способ сделать это

sudo systemctl disable ssh.service

тогда

sudo systemctl stop ssh.service
Jocelyn
источник
1
Это сломало мой sshd16.04: после этой команды systemctl enable ssh.serviceвыдает сообщение «Файл не найден», и мне пришлось очистить и переустановить sshd, чтобы он заработал.
BeeOnRope
3
sudo apt-get install bum

Начать bumс административных привилегий, отключить openssh-сервер, подтвердить это, готово.

RobinJ
источник
2

Для версий с ssh, запущенных upstart, запустите touch /etc/ssh/sshd_not_to_be_run. Сценарий инициализации upstart проверяет этот файл и, если он существует, не запускает sshd.

Daenyth
источник
2

Ручной метод, предоставленный /etc/init/ssh.config.override метод не работает для меня, используя Ubuntu 14.04.03. sshdпо-прежнему запускается автоматически.

/etc/ssh/sshd_not_to_be_runМетод предотвращает ручной sshdзапуск.

Я должен был использовать метод Брайана Эйджи для удаления «начала» на линии /etc/init/ssh.conf. Затем вручную запустить sshd:

sudo service ssh start
Роберт Бейли
источник
1

У меня был тот же вопрос, и вот что я сделал с этим. Возможно, это немного взломано, но работает достаточно хорошо, и вам не нужно ставить под угрозу программу каким-либо образом. Поместите в свой crontab следующее:

@reboot sudo service ssh stop

Это говорит cronоб остановке при sshкаждом включении компьютера. Использование sshдля подключения к другому компьютеру не затрагивается, поскольку это только отключает службу сервера. И если вы хотите включить его на короткое время, все, что вам нужно сделать, это:

sudo service ssh start

Просто не забудьте выключить его, когда вы закончите!

ARandomScientist
источник
Это работает на моей системе Xubuntu 16.04, которая, конечно, использует systemd. Я не верю, что это будет работать на предсистемных системах Ubuntu.
ARandomScientist
1
Вместо того, чтобы делать работу cron, правильным способом было бы отключить ее sudo systemctl disable sshd.service, но, как вы сами упомянули, ваша система инициализации сильно отличается от той, что в вопросе. всю необходимую информацию о более старых системах инициализации можно найти в первых двух ответах в этом посте. askubuntu.com/questions/19320/…
db429