Reiniciar o SSH no Ubuntu é um comando simples. O problema é que, frequentemente, isso afeta justamente o serviço que permite o acesso ao servidor.
Em uma máquina local, o risco é baixo. Em um VPS ou servidor remoto, prefiro verificar algumas coisas antes de pressionar Enter. Uma configuração incorreta, uma porta esquecida no firewall ou confusão entre ssh E sshdE você pode acabar precisando de um console reserva.

O comando para reiniciar o SSH no Ubuntu
No Ubuntu e no Debian, o serviço OpenSSH do lado do servidor geralmente é chamado de sshO comando mais direto é, portanto:
sudo systemctl restart ssh
Logo em seguida, verifique se o serviço voltou a estar ativo:
sudo systemctl status ssh --no-pager
Você também pode realizar uma verificação mais rápida, o que é conveniente em um roteiro ou em uma sessão rápida:
systemctl is-active ssh
Se a resposta for ativoO serviço está em execução. Se você receber fracassado, inativo ou se ocorrer um erro de unidade não encontrada, não encerre a sessão atual antes de entender o motivo.
Teste a configuração antes de desligar o serviço.
Se você modificou /etc/ssh/sshd_configPrimeiro, teste a configuração. Esta é uma verificação que sempre realizo antes de reiniciar o sistema remotamente via SSH:
sudo /usr/sbin/sshd -t
Se o comando não retornar nada, é um bom sinal. Se exibir um erro, corrija o arquivo antes de reiniciar o SSH. Para um teste específico no arquivo principal:
sudo /usr/sbin/sshd -t -f /etc/ssh/sshd_config
Este teste não garante que seu firewall ou provedor de nuvem suporte a porta SSH, mas impede que você reinicie um serviço com uma configuração inválida. É simples, rápido e pode evitar que você precise intervir pela linha de comando.
Reiniciar ou recarregar: qual escolher?
Para aplicar uma alteração na configuração SSH, nem sempre é necessário reiniciar o sistema completamente. Quando o serviço permite, uma reinicialização simples é menos disruptiva:
sudo systemctl reload ssh
Na prática, eu uso recarregar Para uma alteração de configuração limpa, após um sshd -t Validado. Eu uso reiniciar Quando o serviço está bloqueado, após uma atualização do OpenSSH ou quando quero começar tudo de novo a partir de um estado limpo.
Para ver o que o systemd sabe sobre sua máquina, este comando é útil:
systemctl list-unit-files 'ssh*'
Em algumas instalações, você também poderá encontrar ssh.socketNesse caso, verifique o estado do item antes de tocar em qualquer coisa:
sudo systemctl status ssh.socket --no-pager
Para entender os comandos do systemd sem confundir service, reload e restart, você também pode reler nosso guia sobre Comandos úteis do systemctl antes de uma reinicialização aleatória.
Verifique se a porta SSH ainda está em escuta.
O serviço pode estar ativo, mas o SSH pode estar escutando em uma porta diferente da que você está usando. Em um sistema Ubuntu típico, a porta geralmente é a 8080. vinte e doisMas esta não é uma regra absoluta.
Para verificar quais portas estão em escuta:
sudo ss -ltnp | grep ':22'
Se você alterou a porta na configuração SSH, pergunte ao OpenSSH qual porta está sendo aplicada:
sudo /usr/sbin/sshd -T | grep '^porta'
Para aprofundar este tema, consulte o artigo sobre netstat, ss e portas abertas no Linux Oferece um método mais abrangente.
Considere também o seu firewall local. Com o UFW, a verificação é imediata:
sudo ufw status verbose
Se o SSH estiver escutando na porta 2222, mas o firewall permitir apenas a porta 22, o serviço pode estar totalmente operacional, porém inacessível externamente. O mesmo se aplica se o seu provedor de hospedagem impuser um firewall ou grupo de segurança upstream.
Verifique os registros se a reinicialização falhar.
Se systemctl status ssh Indica um erro; comece verificando os registros de serviço:
sudo journalctl -u ssh -b --no-pager | tamanho -50
Você também pode acompanhar as mensagens ao vivo durante uma nova tentativa:
sudo journalctl -u ssh -f
Os erros mais frequentes são bastante óbvios: opção desconhecida em sshd_config, porta já em uso, chave de host ausente, permissão de arquivo incorreta ou diretiva colocada no lugar errado.
Se precisar expandir a cobertura da sua rede após uma alteração na rede ou reinicialização do servidor, consulte o guia sobre journalctl e os registros da última inicialização do Linux ajudará você a identificar erros sem precisar ler todo o registro do sistema.
Precauções a serem tomadas em um servidor remoto
Se você estiver conectado via SSH à máquina que vai modificar, mantenha a sessão aberta. Você pode até abrir uma segunda sessão antes que o serviço reinicie.
usuário ssh@endereço-do-servidor
Após reiniciar, tente uma nova conexão a partir de outro terminal. Se a nova conexão funcionar, você pode fechar a antiga. Se falhar, a sessão antiga ainda poderá ser útil.
Em um servidor de produção, verifique também se você possui um console de backup com seu provedor de hospedagem. Isso é particularmente importante se você estiver modificando simultaneamente a porta SSH, o UFW, um endereço IP estático ou a configuração de rede. Para este último, consulte o artigo sobre o endereço IP fixo no Debian demonstra os mesmos reflexos cautelosos no lado da rede.
Quando reinstalar o OpenSSH em vez de reiniciar
Uma reinicialização é suficiente se o serviço estiver instalado, a configuração for válida e o problema for temporário. No entanto, se a unidade ssh.service Se o pacote do servidor OpenSSH não existir, ou se o servidor tiver sido limpo de forma excessiva, você terá que iniciar a instalação novamente.
Nesse caso, não force reinicializações em loop. Primeiro, verifique o pacote:
dpkg -l | grep openssh-server
Caso nada seja relatado, repita o procedimento específico: Reinstalar o SSH corretamente no UbuntuReiniciar um serviço que não está em execução não resolverá o problema.
Meu método rápido antes da validação
Quando preciso usar SSH no Ubuntu, faço o seguinte: testo a configuração, recarrego se possível, reinicio se necessário e, em seguida, verifico a porta, o firewall e estabeleço uma nova conexão.
sudo /usr/sbin/sshd -t
sudo systemctl reload ssh
sudo systemctl status ssh --no-pager
sudo ss -ltnp | grep ':22'
sudo ufw status verbose
Se você estiver trabalhando remotamente, não encerre a sessão ativa até que uma nova conexão SSH tenha sido testada. Esta é provavelmente a dica menos impactante do artigo, mas é a que evita as surpresas mais desagradáveis.
As páginas oficiais do Ubuntu em Servidor OpenSSH, documentação sistemactlas páginas de manual sshd E sshd_config, bem como a documentação UFWEsses são bons pontos de partida se você precisar documentar um procedimento de servidor.