Jak wyłączyć automatyczne uruchamianie SSHD?


32

Po zainstalowaniu openssh-server serwer uruchamia się przy każdym uruchomieniu. Jeśli chcę, aby był ręczny, co muszę zrobić?

W wersji 0.6.7+ nowszej wersji dodawałem zwrotkę „manualną” do pliku zadania.

10.04 ma upstart 0.6.5-8. Jaki jest preferowany sposób wyłączenia automatycznego uruchamiania ssh w tym przypadku?

Odpowiedzi:


31

Zmień nazwę /etc/init/ssh.conf na /etc/init/ssh.conf.disabled.

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

Szybkie, łatwe i samo dokumentujące. Doskonały.
LeartS

1
Być może nawet lepiej niż echo manual | sudo tee /etc/init/ssh.conf.override, zobacz także, jak włączyć lub wyłączyć usługi
tutaj

echo manual | sudo tee /etc/init/ssh.conf.overridewydaje się znacznie lepszą odpowiedzią, ponieważ sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabledzapobiega także ręcznemu uruchamianiu serwera bez zmiany go za każdym razem.
Brian Z

Zamiast ssh.conf.overridetego @BrianZ nie działa dla mnie ssh.override.
fikr4n

To nie jest zalecany sposób. Nie mówisz systemowi operacyjnemu, że usługa nie powinna działać. update-rc.dAby to zrobić, użyj (lub odpowiednika).
Reinier Post

19

To powinno wystarczyć:

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

Czy to działa w przypadku zadania upstart lub tylko starych skryptów inicjujących sys v?
komputuje

To powinno wystarczyć, nawet jeśli używasz upstart (bootowanie
oparte na

MówiSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n

7

W swoim /etc/init/ssh.conf skomentuj początek on- line:

# 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
Uważam, że ogólnie lepiej jest używać bardziej ogólnych mechanizmów, o których wspominają @komputes i hhlp. Chociaż jest to w porządku dla jednego przypadku.
belacqua,

6

uwaga dla czytelnika:

dla mnie (ubuntu 14.xx) zadziałała tylko odpowiedź Bryana Agee: /etc/init/ssh.conf: skomentuj wiersz „start na systemie plików lub poziomie pracy ...”

dlaczego inni tego nie zrobią?

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

spowoduje całkowite wyłączenie usługi. Nie można go już uruchomić poprzez „service ssh start”.

update-rc.d ssh enable # ustawia domyślne poziomy uruchamiania na włączone

po prostu nie działa (być może używa innej procedury autostartu)

/etc/init/ssh.conf.override z „manual”

po prostu nie działa

dotknij / etc / ssh / sshd_not_to_be_run

również całkowicie wyłącza system

sudo apt-get install bum

fajne oprogramowanie, ale nie pokazuje ssh, więc nie ma tu nic do roboty

przesłuchanie osoby: dlaczego nawet powyższe odpowiedzi są tutaj? czy system startowy jest tak skomplikowany, czy nikt nie próbuje swoich rozwiązań? oO


I mówimy tylko o Ubuntu 14.04. Teraz spróbuj znaleźć uniwersalne rozwiązanie ...
LatinSuD

5

Dla systemu mającego systemdwłaściwy sposób to zrobić

sudo systemctl disable ssh.service

następnie

sudo systemctl stop ssh.service

1
To zepsuło mi sshd16.04: po tym poleceniu systemctl enable ssh.servicezgłasza komunikat „Nie znaleziono pliku” i musiałem wyczyścić i ponownie zainstalować sshd, aby działał.
BeeOnRope

3
sudo apt-get install bum

Zacznij bumod uprawnień administracyjnych, wyłącz openssh-server, potwierdź to, gotowe.


2

W przypadku wersji z ssh uruchomionych przez upstart, uruchom touch /etc/ssh/sshd_not_to_be_run. Skrypt inicjujący w górę sprawdza ten plik i, jeśli istnieje, nie uruchamia sshd.


2

Podana metoda ręczna metoda /etc/init/ssh.config.override nie działa dla mnie w systemie Ubuntu 14.04.03. sshdnadal uruchamia się automatycznie.

/etc/ssh/sshd_not_to_be_runSposób uniemożliwia ręcznego sshdstart.

Musiałem użyć metody Briana Agee'a, aby usunąć „start on” on-line /etc/init/ssh.conf. Następnie, aby ręcznie uruchomić sshd:

sudo service ssh start

1

Miałem to samo pytanie i oto co z tym zrobiłem. Może to trochę hack, ale działa wystarczająco dobrze i nie musisz w żaden sposób narażać programu na szwank. Umieść w swoim crontab:

@reboot sudo service ssh stop

Oznacza to, że cronnależy zatrzymać się przy sshkażdym włączeniu komputera. Korzystanie sshpodłączyć do innego komputera nie ma wpływu, jak tylko okaże się usługi serwera. A jeśli chcesz ponownie włączyć go na krótki czas, wszystko, co musisz zrobić, to:

sudo service ssh start

Pamiętaj tylko, aby wyłączyć go po zakończeniu!


Działa to na moim systemie Xubuntu 16.04, który oczywiście używa systemd. Nie wierzę, że to zadziała na wcześniejszych systemach Ubuntu.
ARandomScientist

1
Zamiast tworzyć zadanie crona, właściwym sposobem byłoby wyłączenie go za pomocą sudo systemctl disable sshd.service, ale jak sam wspomniałeś, twój system init jest zupełnie inny niż ten, o którym mowa w pytaniu. wszystkie istotne informacje o starszych systemach init można znaleźć w dwóch pierwszych odpowiedziach w tym poście askubuntu.com/questions/19320/…
db429
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.