Como mudar a porta do SSH sem se trancar fora do servidor

A regra para mudar a porta do SSH é uma só: abra a nova porta antes de fechar a antiga, e teste numa segunda ligação antes de fechar a primeira. Edita-se /etc/ssh/sshd_config, põe-se uma linha Port 2222 (um exemplo), abre-se essa porta na firewall, reinicia-se o SSH e liga-se por ela. Só quando funciona se tira a porta 22. Mudar a porta não é segurança a sério: limpa o ruído dos testes automáticos que só olham para a 22 e deixa os registos legíveis. A segurança vem das chaves (criar uma chave SSH e manter o VPS seguro).

Passo a passo

1 Escolha a porta e anote-a. Um número livre (acima de 1024) que não use. Escreva-o onde guarda as credenciais: quem herda ou se esquece do número fica sem entrar (perdi o acesso SSH).
2 Abra a nova porta na firewall primeiro. Com o ufw: sudo ufw allow 2222/tcp. Com o firewalld: sudo firewall-cmd --permanent --add-port=2222/tcp e sudo firewall-cmd --reload. No AlmaLinux e no Rocky, o SELinux também tem de a conhecer: sudo semanage port -a -t ssh_port_t -p tcp 2222 (veja SELinux e AppArmor).
3 Edite a configuração mantendo as duas portas. sudo nano /etc/ssh/sshd_config e deixe as linhas Port 22 e Port 2222. Assim, se algo correr mal, a 22 ainda o deixa entrar.
4 Teste a configuração antes de reiniciar. sudo sshd -t não deve escrever nada. Se escrever, é um erro de sintaxe: corrija-o antes de continuar.
5 Reinicie o SSH, com a sessão actual ainda aberta. sudo systemctl restart ssh em Debian e Ubuntu; sudo systemctl restart sshd em AlmaLinux e Rocky. Em versões recentes do Ubuntu o SSH pode ser iniciado por um socket (ssh.socket): veja o aviso mais abaixo.
6 Confirme que escuta nas duas portas. sudo ss -tlnp | grep sshd deve mostrar a 22 e a 2222.
7 Ligue-se pela nova, numa janela nova, sem fechar a antiga: ssh -p 2222 utilizador@IP-do-servidor. Só se entrar é que continua.
8 Tire a porta antiga. Apague a linha Port 22, sudo sshd -t, reinicie, e feche a 22 na firewall (sudo ufw delete allow 22/tcp). Teste mais uma vez numa terceira janela.

O que muda a seguir

Ferramenta Como indicar a porta
ssh ssh -p 2222 utilizador@IP
scp scp -P 2222 ficheiro utilizador@IP:/destino (P maiúsculo)
sftp e clientes gráficos sftp -P 2222 ...; num cliente gráfico, o campo “Porta”
rsync rsync -e "ssh -p 2222" ... (copiar com rsync)
Ligação por túnel e cópias automáticas A porta tem de ser actualizada em cada script e cada ficheiro de configuração que ligue ao servidor.
Em versões recentes do Ubuntu, o SSH pode ser iniciado por um socket. Nesse caso a porta que o sistema escuta pode vir da unidade ssh.socket e não só do sshd_config. Por isso o passo de confirmar com ss -tlnp é obrigatório: se a porta nova não aparece, veja systemctl status ssh.socket e a documentação do Ubuntu para a sua versão, e só então feche a antiga. Segundo o seu sistema, a mecânica pode variar.
Nunca feche a sessão onde mexeu até testar noutra. É a causa mais comum de ficar trancado fora. Se acontecer, a consola do painel entra sem passar pela rede e desfaz-se: perdi o acesso SSH ao servidor.
Há duas portas para a mesma coisa: a do servidor e a de outros serviços. Se tem um fail2ban (instalar o fail2ban), diga-lhe a porta nova, senão deixa de proteger o SSH. E se corre o SSH noutra porta por causa de redes onde só passa o tráfego web, lembre-se de que isso é outra questão: portas e firewall.

Trancou-se fora do servidor depois de mexer no SSH? Diga-nos o nome do serviço e o que fez, e damos-lhe a consola.

Abrir um pedido de suporte

VEJA TAMBÉM

Perdi o acesso SSH ao servidor

Manter o seu VPS seguro

Portas e firewall num VPS

Porque o seu IP é bloqueado pela firewall

PRODUTO RECOMENDADO

Servidor VPS com acesso root

Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 7.560,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?