Como desabilito o SSHD para iniciar automaticamente?

32

Após instalar o openssh-server, o servidor inicia toda vez que eu inicializo. Se eu quiser que seja manual, o que preciso fazer?

Na versão 0.6.7+ do iniciante, eu adicionaria uma estrofe "manual" ao arquivo de trabalho.

10.04 possui 0.6.5-8 inicial. Qual é a maneira preferida de desativar o ssh para iniciar automaticamente neste caso?

komputes
fonte

Respostas:

31

Renomeie /etc/init/ssh.conf para /etc/init/ssh.conf.disabled.

sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabled
komputes
fonte
Rápido, fácil e auto-documentado. Perfeito.
precisa saber é
1
Possivelmente ainda melhor do que echo manual | sudo tee /etc/init/ssh.conf.override, veja também como ativar ou desativar serviços
aqui
echo manual | sudo tee /etc/init/ssh.conf.overrideparece uma resposta muito melhor, porque sudo mv /etc/init/ssh.conf /etc/init/ssh.conf.disabledtambém impede a inicialização manual do servidor sem alterá-lo novamente todas as vezes.
Brian Z
O @BrianZ ssh.conf.overridenão funciona para mim ssh.override.
Fikr4n
Esta não é a maneira recomendada. Você não está dizendo ao sistema operacional que o serviço não deve ser executado. Use update-rc.d(ou equivalente) para fazer isso.
Reinier Publicar
19

Isso deve ser o suficiente:

 update-rc.d ssh enable # sets the default runlevels to on 
 update-rc.d ssh disable # sets all to off
hhlp
fonte
Isso funciona com um trabalho inicial ou apenas com scripts antigos sys v init?
komputes
Isso deve ser suficiente, mesmo se você estiver usando (booting-base de dependência) arrivista
hhlp
Ele dizSystem start/stop links for /etc/init.d/ssh do not exist.
fikr4n 28/02
7

No seu /etc/init/ssh.conf, comente o início 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
Bryan Agee
fonte
1
Sou da opinião de que, em geral, é melhor usar os mecanismos mais genéricos mencionados pelo @komputes e pelo hhlp. Embora isso seja bom para um único caso.
Belacqua
6

nota para o leitor:

para mim (ubuntu 14.xx) apenas a resposta de Bryan Agee funcionou: /etc/init/ssh.conf: comente a linha "start on filesystem or runlevel ..."

por que os outros não?

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

resultará na desativação completa do serviço. Então não é mais possível iniciar o "service ssh start".

update-rc.d ssh enable # define os níveis de execução padrão em

simplesmente não funciona (talvez use uma rotina de inicialização automática diferente)

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

simplesmente não funciona

toque em / etc / ssh / sshd_not_to_be_run

também desativa completamente o sistema

sudo apt-get install bum

bom software, mas não mostra ssh, então nada a fazer aqui

pessoa que pergunta: por que as respostas acima estão aqui? o sistema de inicialização é tão complicado ou ninguém tenta suas soluções? oO

TheTrowser
fonte
E estamos falando apenas do Ubuntu 14.04. Agora tente encontrar uma solução universal ...
LatinSuD 18/17/17
5

Para o sistema que tem systemda maneira correta de fazê-lo, é

sudo systemctl disable ssh.service

então

sudo systemctl stop ssh.service
Jocelyn
fonte
1
Isso quebrou o meu sshdno 16.04: após esse comando systemctl enable ssh.servicerelatar "Arquivo não encontrado" e eu tive que limpar e reinstalar o sshd para fazê-lo funcionar.
BeeOnRope
3
sudo apt-get install bum

Comece bumcom privilégios administrativos, desative o openssh-server, confirme, feito.

RobinJ
fonte
2

Para versões com ssh iniciadas pelo upstart, execute touch /etc/ssh/sshd_not_to_be_run. O script init inicializa esse arquivo e, se existente, não inicia o sshd.

Daenyth
fonte
2

O método manual fornecido /etc/init/ssh.config.override não funciona para mim usando o Ubuntu 14.04.03. sshdainda inicia automaticamente.

O /etc/ssh/sshd_not_to_be_runmétodo impede o sshdinício manual .

Eu tive que usar o método de Brian Agee para remover o "start on" na linha de /etc/init/ssh.conf. Então, para iniciar manualmente sshd:

sudo service ssh start
Robert Bailey
fonte
1

Eu tive a mesma pergunta e aqui está o que eu fiz sobre isso. É um pouco complicado, talvez, mas funciona bem o suficiente e você não precisa comprometer o programa de forma alguma. Coloque o seguinte no seu crontab:

@reboot sudo service ssh stop

Isso diz cronpara parar sshtoda vez que você liga o computador. O uso sshda conexão com outro computador não é afetado, pois isso apenas desativa o serviço do servidor. E se você deseja reativá-lo por um tempo, tudo o que você precisa fazer é:

sudo service ssh start

Lembre-se de desligá-lo quando terminar!

ARandomScientist
fonte
Isso funciona no meu sistema Xubuntu 16.04 que, é claro, usa systemd. Não acredito que isso funcione em sistemas Ubuntu pré-sistema.
ARandomScientist
1
Em vez de fazer um cron-job, a maneira correta seria desabilitá-lo sudo systemctl disable sshd.service, mas como você mesmo mencionou, o seu sistema init é muito diferente do da questão. todas as informações relevantes sobre sistemas init mais antigos podem ser encontradas nas duas primeiras respostas deste post. askubuntu.com/questions/19320/…
db429