¿Cómo desactivo SSHD para que no se inicie automáticamente?

32

Después de instalar openssh-server, el servidor se inicia cada vez que inicio. Si quiero que sea manual, ¿qué debo hacer?

En la versión 0.6.7+ de advenedizo agregaría una estrofa "manual" al archivo de trabajo.

10.04 tiene advenedizo 0.6.5-8. ¿Cuál es la forma preferida de deshabilitar ssh para que no se inicie automáticamente en este caso?

komputes
fuente

Respuestas:

31

Cambie el nombre de /etc/init/ssh.conf a /etc/init/ssh.conf.disabled.

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
komputes
fuente
Rápido, fácil y autodocumentado. Perfecto.
LeartS
1
Posiblemente incluso mejor que echo manual | sudo tee /etc/init/ssh.conf.override, vea también cómo habilitar o deshabilitar servicios
aquí
echo manual | sudo tee /etc/init/ssh.conf.overrideParece una respuesta mucho mejor, porque sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabledtambién impide iniciar el servidor manualmente sin cambiarlo de nuevo cada vez.
Brian Z
@BrianZ ssh.conf.overrideno funciona para mí, en ssh.overridecambio.
fikr4n
Esta no es la forma recomendada. No le está diciendo al sistema operativo que se supone que el servicio no debe ejecutarse. Use update-rc.d(o equivalente) para hacer eso.
Reinier Post
19

Esto debería ser suficiente:

 update-rc.d ssh enable # sets the default runlevels to on 
 update-rc.d ssh disable # sets all to off
hhlp
fuente
¿Funciona esto con un trabajo inicial o solo con sys v init scripts antiguos?
komputes
Esto debería ser suficiente, incluso si está utilizando el arranque (arranque
basado en la
DiceSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n
7

En su /etc/init/ssh.conf, comente el inicio en línea:

# 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
fuente
1
Soy de la opinión de que, en general, es mejor usar los mecanismos más genéricos que @komputes y hhlp mencionan. Aunque esto está bien para un solo caso.
belacqua
6

nota para el lector:

para mí (ubuntu 14.xx) solo la respuesta de Bryan Agee funcionó: /etc/init/ssh.conf: comente la línea "iniciar en sistema de archivos o nivel de ejecución ..."

¿Por qué no lo harán los demás?

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

resultará en la desactivación completa del servicio. Entonces ya no se puede iniciar a través de "service ssh start".

update-rc.d ssh enable # establece los niveles de ejecución predeterminados en

simplemente no funciona (quizás usa una rutina de inicio automático diferente)

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

simplemente no funciona

toque / etc / ssh / sshd_not_to_be_run

también desactiva completamente el sistema

sudo apt-get install bum

buen software, pero no muestra ssh, así que no hay nada que hacer aquí

persona preguntando: ¿por qué las respuestas anteriores incluso aquí? ¿Es el sistema de inicio tan complicado o nadie prueba sus soluciones? oO

TheTrowser
fuente
Y solo estamos hablando de Ubuntu 14.04. Ahora trate de encontrar una solución universal ...
LatinSuD
5

Para el sistema que tiene systemdla forma correcta de hacerlo es

sudo systemctl disable ssh.service

luego

sudo systemctl stop ssh.service
Jocelyn
fuente
1
Esto me rompió sshdel 16.04: después de que el comando systemctl enable ssh.serviceinforma "Archivo no encontrado" y tuve que purgar y reinstalar sshd para que funcione.
BeeOnRope
3
sudo apt-get install bum

Comience bumcon privilegios administrativos, deshabilite el servidor openssh, confírmelo, listo.

RobinJ
fuente
2

Para versiones con ssh iniciadas por upstart, ejecute touch /etc/ssh/sshd_not_to_be_run. El script de inicio inicial busca este archivo y, si existe, no inicia sshd.

Daenyth
fuente
2

El método manual provisto /etc/init/ssh.config.override método no funciona para mí usando Ubuntu 14.04.03. sshdTodavía se inicia automáticamente.

El /etc/ssh/sshd_not_to_be_runmétodo evita el sshdinicio manual .

Tuve que usar el método de Brian Agee para eliminar el "inicio" en línea de /etc/init/ssh.conf. Luego, para comenzar manualmente sshd:

sudo service ssh start
Robert Bailey
fuente
1

Tenía la misma pregunta y esto es lo que hice al respecto. Tal vez sea un truco, pero funciona lo suficientemente bien y no es necesario comprometer el programa de ninguna manera. Pon lo siguiente en tu crontab:

@reboot sudo service ssh stop

Esto le indica cronque se detenga sshcada vez que encienda su computadora. El uso sshpara conectarse a otra computadora no se ve afectado, ya que esto solo desactiva el servicio del servidor. Y si desea volver a habilitarlo por un tiempo breve, todo lo que tiene que hacer es:

sudo service ssh start

¡Solo recuerda apagarlo cuando hayas terminado!

ARandomCientífico
fuente
Esto funciona en mi sistema Xubuntu 16.04 que, por supuesto, utiliza systemd. No creo que esto funcione en sistemas Ubuntu pre-systemd.
ARandomScientist
1
En lugar de hacer un trabajo cron, la forma correcta sería deshabilitarlo sudo systemctl disable sshd.service, sin embargo, como usted mismo mencionó, su sistema init es muy diferente al de la pregunta. Toda la información relevante sobre los sistemas init más antiguos se puede encontrar en las dos primeras respuestas en esta publicación askubuntu.com/questions/19320/…
db429