Tutoriel Linux

Reiniciando o SSH no Ubuntu: o comando a ser usado e as verificações a serem realizadas.

Débutant6 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

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.

Servidor Ubuntu executando Linux com conexão SSH segura e reinicialização de serviço.

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.

sudo apt update && sudo apt upgrade