Reinicie o SSH em uma máquina em que o SSH é o único modo de acesso

29

Fiz algumas alterações no arquivo sshd_config e, portanto, preciso reiniciar. Estou procurando dicas sobre como reiniciar o ssh com segurança quando obter acesso físico ao servidor seria uma PITA huga.

Mitch
fonte

Respostas:

42

Reiniciar o sshd enquanto estiver conectado via ssh não desconectará sua conexão ssh.

Se você estiver preocupado com a sua configuração, efetue login algumas vezes via ssh e reinicie. Se você não puder mais usar o ssh, com novas conexões, agora você terá acesso para corrigir os problemas.

Mencionado abaixo em um comentário de @Milan Babuškov: sshd -ttestará sua configuração quanto à correção da sintaxe, se você realmente quiser ter certeza.

Outra sugestão, de @Ronald Pottol, foi configurar uma crontarefa para reiniciar o servidor com uma configuração de trabalho conhecida. Talvez exagere, mas se você estiver atualizando um servidor de missão crítica, etc ... às vezes nunca poderá ter muito cuidado.

cpbills
fonte
Isso é muito fácil, também faz sentido. Obrigado pela resposta realmente rápida. FYI as mudanças que eu estava fazendo funcionou muito bem;)
Mitch
6

Se você tiver acesso ao hardware, considere colocar um terminal na porta serial / dev / ttyS0. Então você pode ter uma porta traseira no seu servidor.

basta adicionar

SO:2345:respawn:/sbin/mingetty ttySO

ao seu / etc / inittab e um terminal aparecerá sobre a sua porta serial. Você pode usar um concentrador de porta serial ou um modem nulo do servidor próximo a ele.

keithosu
fonte
Legal! Esta é uma prática bastante padrão?
Mitch
3
Bastante padrão, desde que você tenha uma maneira de conectar-se à máquina que é o servidor de terminal serial.
Kamil Kisiel
2
Pode ser, mas devido à virtualização, não é tão necessário porque você pode gerenciar através do Hypervisor. Outra coisa interessante é que, se o BIOS suportar, é "Redirecionamento de console", isso mostrará todas as telas do BIOS através do seu console serial. O GRUB também pode exibir no console serial. Portanto, não há necessidade de vídeo remoto para ver se seu servidor voltará a ficar online.
Keithosu 12/05/10
4

Não se preocupe, sua sessão atual não será desconectada, mesmo que haja um problema com a nova configuração.

Após aplicar a nova configuração e reiniciar o sshd, tente efetuar login algumas vezes e dê uma olhada nos logs para ver se está tudo bem.

Marco Ramos
fonte
3

Ou use um cron ou no trabalho para iniciá-lo novamente, se você estiver com azar?

Ronald Pottol
fonte
cronou atiria funcionar, para copiar um 'conhecido' de trabalho, ou seja, a configuração antiga, costas e, em seguida, fazer uma reinicialização do serviço ...
cpbills
1

Você não poderia simplesmente executar um kill -HUP no PID do serviço SSH? Não é limpo, mas funciona


fonte
2
Geralmente, SIGHUP é a maneira limpa de recarregar a configuração de um daemon.
grawity
Ele é limpo neste caso. A partir da fonte autorizada: sshd relê seu arquivo de configuração quando recebe um sinal de hangup, SIGHUP
Stéphane Gourichon
1
pkill -HUP sshdfechou minha conexão. Isso funcionou:kill -HUP $(pgrep -f /usr/bin/sshd)
Tom Hale
0

Descobri que hoje em dia sshdnão desconecta suas sessões ao reiniciar, principalmente quando se trata de uma distribuição baseada no Redhat. Você sempre pode escrever um pequeno script que restaurará automaticamente sua sshdconfiguração do backup e reiniciará sshdapós 5 minutos como um trabalho cronou at. Isso garantirá que, mesmo se você for desconectado, possa voltar ao seu servidor pelo menos.

Riaan
fonte
-1

Eu não recomendaria reiniciar / recarregar o SSHD em uma conexão sshd. Eu já vi muitas ocasiões em que o sshd simplesmente não iniciava o backup por causa de um erro de sintaxe no sshd_config.

Mesmo que tudo esteja bem com o arquivo de configuração, é arriscado.

Murat Arslan
fonte
9
Você pode usar o sshd -t para testar o arquivo de configuração antes.
Milan Babuškov
Graças a Milão, eu rapidamente procurei no homem uma opção como essa, no Apache é -s, então devo ter me concentrado muito nele.
Mitch
vou absorver seu comentário na minha resposta, também quando o sshd termina, ele não interrompe as sessões abertas do ssh, mas é bom saber que sua sintaxe é válida, se você estiver suando.
Cpbills