Comment désactiver le démarrage automatique de SSHD?

32

Après avoir installé openssh-server, le serveur démarre à chaque démarrage. Si je veux que ce soit manuel, que dois-je faire?

Dans la version 0.6.7+ de Upstart, j'ajouterais une strophe "manuelle" au fichier de travail.

10.04 a démarré à 0,6.5-8. Quel est le moyen préféré pour empêcher ssh de démarrer automatiquement dans ce cas?

komputes
la source

Réponses:

31

Renommez /etc/init/ssh.conf en /etc/init/ssh.conf.disabled.

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
komputes
la source
Rapide, facile et auto-documentant. Parfait.
Apprentissage
1
Peut-être même mieux que echo manual | sudo tee /etc/init/ssh.conf.override, voir aussi comment activer / désactiver les services
ici-
echo manual | sudo tee /etc/init/ssh.conf.overridesemble être une bien meilleure réponse, car sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabledempêche également de démarrer le serveur manuellement sans le modifier à chaque fois.
Brian Z
@BrianZ ssh.conf.overridene fonctionne pas pour moi, à la ssh.overrideplace.
fikr4n
Ce n'est pas la manière recommandée. Vous ne dites pas au système d'exploitation que le service n'est pas censé fonctionner. Utilisez update-rc.d(ou équivalent) pour le faire.
Reinier Post
19

Cela devrait suffire:

 update-rc.d ssh enable # sets the default runlevels to on 
 update-rc.d ssh disable # sets all to off
hhlp
la source
Est-ce que cela fonctionne avec un travail à venir ou juste avec de vieux scripts sys v init?
komputes
Cela devrait suffire, même si vous utilisez upstart (démarrage avec dépendance)
hhlp
C'est écritSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n
7

Dans votre /etc/init/ssh.conf, commentez le début en ligne:

# 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
la source
1
Je suis d’avis qu’en général, il vaut mieux utiliser les mécanismes plus génériques mentionnés par @komputes et hhlp. Bien que cela soit bien pour un seul cas.
belacqua
6

note au lecteur:

pour moi (ubuntu 14.xx) seule la réponse de Bryan Agee a fonctionné: /etc/init/ssh.conf: commentez la ligne "démarrer sur le système de fichiers ou le niveau d'exécution ..."

pourquoi les autres ne le feront-ils pas?

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

entraînera la désactivation complète du service. Il n'est alors plus possible de démarrer via "service ssh start".

update-rc.d ssh enable # définit les niveaux d'exécution par défaut

ne fonctionne tout simplement pas (peut-être utilise une routine de démarrage automatique différente)

/etc/init/ssh.conf.override avec "manual"

ne fonctionne tout simplement pas

touchez / etc / ssh / sshd_not_to_be_run

désactive également complètement le système

sudo apt-get install bum

bon logiciel, mais il ne montre pas ssh, donc rien à faire ici

personne interrogée: pourquoi les réponses ci-dessus sont-elles encore ici? le système de démarrage est-il si compliqué ou personne ne tente ses solutions? oO

TheTrowser
la source
Et nous ne parlons que d’Ubuntu 14.04. Maintenant, essayez de trouver une solution universelle ...
LatinSuD
5

Pour que le système ait systemdla bonne façon de le faire est

sudo systemctl disable ssh.service

puis

sudo systemctl stop ssh.service
Jocelyn
la source
1
Cela a cassé mon sshdsur 16.04: après que la commande systemctl enable ssh.serviceindique "Fichier non trouvé" et j'ai dû purger et réinstaller sshd pour le faire fonctionner.
BeeOnRope
3
sudo apt-get install bum

Commencez bumavec les privilèges administratifs, désactivez openssh-server, confirmez-le, c'est fait.

RobinJ
la source
2

Pour les versions avec ssh démarrées par upstart, exécutez touch /etc/ssh/sshd_not_to_be_run. Le script init upstart recherche ce fichier et, s'il existe, ne démarre pas sshd.

Daenyth
la source
2

La méthode manuelle fournie /etc/init/ssh.config. La méthode .override ne fonctionne pas pour moi avec Ubuntu 14.04.03. sshdcommence toujours automatiquement.

La /etc/ssh/sshd_not_to_be_runméthode empêche le sshddémarrage manuel .

Je devais utiliser la méthode de Brian Agee pour supprimer le "début" en ligne /etc/init/ssh.conf. Puis pour démarrer manuellement sshd:

sudo service ssh start
Robert Bailey
la source
1

J'ai eu la même question et voici ce que j'ai fait à ce sujet. C'est un peu un bidouillage, peut-être, mais cela fonctionne assez bien, et vous n'avez pas besoin de compromettre le programme de quelque façon que ce soit. Mettez ce qui suit dans votre crontab:

@reboot sudo service ssh stop

Cela indique crond'arrêter sshchaque fois que vous allumez votre ordinateur. Utiliser sshpour se connecter à un autre ordinateur n'est pas affecté, car cela désactive uniquement le service du serveur. Et si vous souhaitez le réactiver pendant un court instant, tout ce que vous avez à faire est de:

sudo service ssh start

Rappelez-vous simplement de le désactiver lorsque vous avez terminé!

ARandomScientist
la source
Cela fonctionne sur mon système Xubuntu 16.04 qui, bien sûr, utilise systemd. Je ne crois pas que cela fonctionnera sur les systèmes Ubuntu pré-système.
ARandomScientist
1
Au lieu de faire une tâche cron, la méthode appropriée consiste à la désactiver sudo systemctl disable sshd.service, mais comme vous l'avez vous-même mentionné, votre système init est très différent de celui de la question. toutes les informations pertinentes sur les anciens systèmes init peuvent être trouvées dans les deux premières réponses de cet article askubuntu.com/questions/19320/…
db429