Wie deaktiviere ich das automatische Starten von SSHD?

32

Nach der Installation von openssh-server wird der Server bei jedem Start gestartet. Wenn ich möchte, dass es manuell ist, was muss ich dann tun?

In Version 0.6.7+ von upstart würde ich der Jobdatei eine "manuelle" Zeilengruppe hinzufügen.

10.04 hat Emporkömmling 0.6.5-8. Was ist in diesem Fall die bevorzugte Methode, um den automatischen Start von ssh zu deaktivieren?

komputes
quelle

Antworten:

31

Benennen Sie /etc/init/ssh.conf in /etc/init/ssh.conf.disabled um.

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
komputes
quelle
Schnell, einfach und selbstdokumentierend. Perfekt.
LeartS
1
Möglicherweise sogar besser als echo manual | sudo tee /etc/init/ssh.conf.override, siehe auch Aktivieren oder Deaktivieren von Diensten
hier
echo manual | sudo tee /etc/init/ssh.conf.overridescheint eine viel bessere Antwort zu sein, da sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabledauch verhindert wird , dass der Server manuell gestartet wird, ohne dass er jedes Mal geändert wird.
Brian Z
@BrianZ ssh.conf.overridefunktioniert ssh.overridestattdessen nicht für mich .
Fikr4n
Dies ist nicht der empfohlene Weg. Sie teilen dem Betriebssystem nicht mit, dass der Dienst nicht ausgeführt werden soll. Verwenden Sie update-rc.d(oder ein gleichwertiges), um dies zu tun.
Reinier Post
19

Das sollte reichen:

 update-rc.d ssh enable # sets the default runlevels to on 
 update-rc.d ssh disable # sets all to off
hhlp
quelle
Funktioniert dies mit einem Startjob oder nur mit alten sys v init-Skripten?
komputes
Dies sollte ausreichen, auch wenn Sie Upstart (Booten auf Abhängigkeitsbasis) verwenden
hhlp
Es heißtSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n
7

Kommentieren Sie in Ihrer /etc/init/ssh.conf den Start online aus:

# 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
Bryan Agee
quelle
1
Ich bin der Meinung, dass es im Allgemeinen besser ist, die allgemeineren Mechanismen zu verwenden, die @komputes und hhlp erwähnen. Dies ist jedoch in Ordnung für einen Einzelfall.
Belacqua
6

Hinweis für den Leser:

bei mir (ubuntu 14.xx) hat nur Bryan Agees antwort geklappt: /etc/init/ssh.conf: kommentiere die zeile "start on filesystem or runlevel ..." aus

Warum tun die anderen das nicht?

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

wird dazu führen, dass der Dienst vollständig deaktiviert wird. Es kann dann nicht mehr über "service ssh start" gestartet werden.

update-rc.d ssh enable # setzt die Standard-Runlevel auf on

funktioniert einfach nicht (verwendet möglicherweise eine andere Autostart-Routine)

/etc/init/ssh.conf.mit "manual" überschreiben

funktioniert einfach nicht

Berühren Sie / etc / ssh / sshd_not_to_be_run

Außerdem wird das System vollständig deaktiviert

sudo apt-get install bum

nette Software, aber es zeigt nicht ssh, also hier nichts zu tun

Person, die fragt: Warum werden die obigen Antworten auch hier gegeben? ist das startsystem so kompliziert oder probiert niemand seine lösungen aus? oO

Der Browser
quelle
Und wir sprechen nur über Ubuntu 14.04. Versuchen Sie nun, eine universelle Lösung zu finden ...
LatinSuD
5

Für ein System, systemddas den richtigen Weg hat, ist es

sudo systemctl disable ssh.service

dann

sudo systemctl stop ssh.service
Jocelyn
quelle
1
Dies brach meine sshdam 16.04: nach diesem Befehl systemctl enable ssh.servicemeldet "Datei nicht gefunden" und ich musste sshd bereinigen und neu installieren, um es zum Laufen zu bringen.
BeeOnRope
3
sudo apt-get install bum

Beginnen Sie bummit Administratorrechten, deaktivieren Sie openssh-server, bestätigen Sie, fertig.

RobinJ
quelle
2

Führen Sie für Versionen mit ssh, die von upstart gestartet wurden, Folgendes aus touch /etc/ssh/sshd_not_to_be_run. Das Init-Skript von upstart sucht nach dieser Datei und startet sshd, falls vorhanden, nicht.

Daenyth
quelle
2

Die manuelle Methode /etc/init/ssh.config.override funktioniert mit Ubuntu 14.04.03 nicht. sshdstartet immer noch automatisch.

Das /etc/ssh/sshd_not_to_be_runVerfahren verhindert manuellen sshdStart.

Ich musste Brian Agees Methode anwenden, um den "start on" von zu entfernen /etc/init/ssh.conf. Dann manuell starten sshd:

sudo service ssh start
Robert Bailey
quelle
1

Ich hatte die gleiche Frage und hier ist, was ich dagegen getan habe. Es ist vielleicht ein bisschen hacken, aber es funktioniert gut genug, und Sie müssen das Programm in keiner Weise kompromittieren. Fügen Sie Folgendes in Ihre Crontab ein:

@reboot sudo service ssh stop

Dies weist Sie cronan, sshjedes Mal anzuhalten, wenn Sie Ihren Computer einschalten. Das Herstellen ssheiner Verbindung mit einem anderen Computer ist nicht betroffen, da hierdurch nur der Serverdienst ausgeschaltet wird. Und wenn Sie es für kurze Zeit wieder aktivieren möchten, müssen Sie nur Folgendes tun:

sudo service ssh start

Denken Sie daran, es wieder auszuschalten, wenn Sie fertig sind!

ARandomScientist
quelle
Dies funktioniert auf meinem Xubuntu 16.04-System, das natürlich verwendet systemd. Ich glaube nicht, dass dies auf vorinstallierten Ubuntu-Systemen funktionieren wird.
ARandomScientist
1
Anstatt einen Cron-Job zu machen, ist es der richtige Weg, ihn zu deaktivieren sudo systemctl disable sshd.service, doch wie Sie selbst erwähnt haben, unterscheidet sich Ihr Init-System erheblich von dem in der Frage beschriebenen. Alle relevanten Informationen zu älteren Init-Systemen finden Sie in den ersten beiden Antworten in diesem Beitrag askubuntu.com/questions/19320/…
db429 28.11.16