Як відключити автоматичний запуск SSHD?


32

Після установки openssh-сервера сервер запускається кожного разу при завантаженні. Якщо я хочу, щоб це було вручну, що мені потрібно зробити?

У версії 0.6.7+ з версією запуску я б додав "посібник" строфу до файлу завдання.

10.04 перевершив 0,6,5-8. Який бажаний спосіб відключити автоматичний запуск ssh в цьому випадку?

Відповіді:


31

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

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

Швидке, легке та самодокументування. Ідеально.
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

Чи працює це з початковим завданням або просто зі старими сценаріями sys v init?
обчислює

Цього має бути достатньо, навіть якщо ви використовуєте швидкісні роботи (завантаження на базі залежності)
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: прокоментуйте рядок "запустити у файловій системі або runlevel ..."

чому інші не робитимуть?

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

це призведе до повного вимкнення послуги. Тоді це вже не можна розпочати через "послугу ssh start".

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

просто не працює (можливо, використовується інша програма автоматичного запуску)

/etc/init/ssh.conf.override з "посібником"

просто не працює

торкніться / etc / ssh / sshd_not_to_be_run

також повністю відключає систему

sudo apt-get install bum

приємне програмне забезпечення, але воно не показує ssh, тому нічого тут робити

запитання людини: чому вищезгадане відповідає навіть тут? система запуску настільки складна чи ніхто не пробує його рішення? oO


І ми говоримо лише про 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-сервер, підтвердіть його, зробіть.


2

Для версій з ssh, запущеними upstart, запустіть touch /etc/ssh/sshd_not_to_be_run. Скрипт upstart init перевіряє наявність цього файлу і, якщо він існує, не запускає sshd.


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

Просто пам’ятайте, щоб вимкнути це, коли закінчите!


Це працює на моїй системі Xubuntu 16.04, яка, звичайно, використовує systemd. Я не вірю, що це буде працювати на системах Ubuntu, що раніше працювали.
ARandomScientist

1
Замість того, щоб робити роботу з крон, правильним способом було б її відключити sudo systemctl disable sshd.service, але, як ви самі згадали, ваша система init значно відрізняється від тієї, про яку йдеться у питанні. всю релевантну інформацію про старіші системи init можна знайти в перших двох відповідях у цьому дописі askubuntu.com/questions/19320/…
db429
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.