Ubuntu / Portas SSH, acesso root e administração do NetworkManager

Antes de alterar a porta ou a autenticação do SSH (Secure Shell) no Ubuntu, identifique a configuração ativa do serviço e do socket. Estas notas explicam a mudança de porta, o acesso excepcional como root e quando usar o nmtui; mantenha uma conta administrativa comum, acesso por chave pública e um console de recuperação disponíveis. Para conhecer o procedimento completo, consulte como configurar o OpenSSH e testar a autenticação por chave pública (em inglês).

Verifique primeiro a configuração ativa

cat /etc/os-release
systemctl status ssh.socket ssh.service --no-pager
sudo ss -lntp
sudo sshd -T | grep -E "^(port|listenaddress|permitrootlogin|passwordauthentication|authenticationmethods) "

Mantenha a conexão SSH atual aberta e confirme que consegue acessar o console do servidor. Faça uma cópia de segurança de /etc/ssh/sshd_config e dos arquivos incluídos por ele. Para muitas diretivas, o OpenSSH usa o primeiro valor encontrado; quando houver blocos Match, consulte também sshd -T -C com o usuário e o endereço de origem reais. Alterar a porta não substitui uma autenticação forte nem as restrições de acesso à rede.

Exemplo: mudar o SSH para a porta 1980

A porta 1980 é apenas um exemplo. Escolha uma porta livre e, antes da alteração, permita o acesso a partir da origem de administração nos firewalls ativos do servidor e do provedor de nuvem. Se você usa o UFW (Uncomplicated Firewall), substitua o endereço de documentação 192.0.2.10 abaixo pelo endereço real de administração. Consulte também como restringir o acesso administrativo e aos serviços com o UFW (em inglês).

sudo ufw allow from 192.0.2.10 to any port 1980 proto tcp

Altere a diretiva Port na configuração efetivamente utilizada pelo SSH. Considere os arquivos incluídos e a precedência dos blocos Match, em vez de simplesmente acrescentar valores concorrentes. Valide a sintaxe antes de aplicar a alteração.

Port 1980
sudo sshd -t

Se ssh.socket estiver ativo, reiniciar apenas o serviço pode manter a porta de escuta anterior. No Ubuntu 24.04 e nas versões posteriores que usam essa configuração, examine as definições de socket geradas. Se for necessário um ajuste explícito, execute sudo systemctl edit ssh.socket e adicione o trecho abaixo. A linha vazia ListenStream= limpa a lista anterior. Preserve eventuais vínculos a endereços específicos, em vez de substituí-los automaticamente por este exemplo que informa apenas a porta.

[Socket]
ListenStream=
ListenStream=1980

Aplique os comandos a seguir somente depois de confirmar que o sistema usa ativação por socket. Em um sistema que usa apenas o serviço, não habilite um novo socket; após validar a configuração, recarregue ou reinicie o ssh.service em execução.

sudo systemctl daemon-reload
sudo systemctl restart ssh.socket ssh.service
sudo ss -lntp

Em outro cliente, teste ssh -p 1980 user@server, substituindo o usuário e o servidor pelos valores reais. Mantenha a regra da porta antiga e a conexão atual até confirmar a porta de escuta, um novo login e o funcionamento do sudo. Se o teste falhar, use o console para restaurar, a partir da cópia de segurança, somente as definições do SSH e o ajuste de socket alterados nesta tarefa. Valide e aplique a restauração e recupere primeiro o acesso pela porta original.

A documentação do OpenSSH no Ubuntu explica os arquivos de configuração e sua validação.

Trate o acesso direto como root como uma exceção

Use preferencialmente uma conta comum com sudo para administrar o servidor. Se o acesso direto como root for realmente necessário, prepare uma chave pública e verifique a política efetivamente aplicada a esse usuário.

PermitRootLogin prohibit-password
PubkeyAuthentication yes
AuthenticationMethods publickey

Esses valores não significam que você deva substituir a política global de autenticação da organização. Insira as regras exclusivas de root na estrutura Match já utilizada, preservando a autenticação dos demais administradores. A opção prohibit-password, sozinha, não exclui todos os métodos que dispensam senha; examine AuthenticationMethods quando o requisito for permitir exclusivamente chaves públicas. O estado da conta, as permissões dos arquivos de chaves e o PAM (Pluggable Authentication Modules, sistema de módulos de autenticação) podem impor restrições adicionais.

Definir PermitRootLogin yes não garante, por si só, o acesso por senha: as regras de autenticação por senha, os bloqueios da conta e o PAM continuam sendo aplicados. Não habilite a senha de root como solução de rotina. Valide com sshd -t, consulte sshd -T -C com as condições reais da conexão e teste uma nova sessão com chave e o acesso por sudo. Quando o acesso direto deixar de ser necessário, restaure PermitRootLogin no. Os significados dessas opções constam no manual oficial de sshd_config.

Identifique o gerenciador de rede antes de usar o nmtui

systemctl is-active NetworkManager systemd-networkd
sudo netplan get
command -v nmtui

O nmtui edita perfis de conexão do NetworkManager. Se precisar da ferramenta, verifique o pacote network-manager, mas lembre-se de que instalá-lo não migra com segurança uma configuração existente do Netplan com systemd-networkd. Evite que dois gerenciadores controlem a mesma interface. Antes de alterar um servidor remoto, defina qual serviço será responsável pela configuração da rede e como recuperar o acesso se houver uma falha. Consulte como identificar a responsabilidade do Netplan, do NetworkManager e do networkd (em inglês); a referência YAML do Netplan descreve a opção renderer.