Conectando e Configurando SSH em um VPS: O Guia Completo de Segurança
Secure shell (SSH) access é a base da gestão profissional de servidores. Quer esteja a implementar um site WordPress, a enviar código via Git, ou a administrar aplicações personalizadas, SSH oferece-lhe um túnel encriptado e autenticado diretamente no seu servidor. Este guia abrangente acompanha-o em cada passo — desde a sua primeira ligação até ao reforço da sua configuração contra ataques do mundo real — para que possa gerir o seu ambiente de VPS Hosting com confiança.
Por que a Segurança SSH é Importante
Cada servidor acessível publicamente enfrenta um bombardeio constante de tentativas automatizadas de força bruta. Minutos após um VPS entrar em operação, bots começam a verificar a porta 22 e tentam combinações comuns de nome de usuário/senha. Uma configuração SSH mal protegida é um dos pontos de entrada mais comuns para atacantes.
A boa notícia: algumas mudanças de configuração deliberadas reduzem drasticamente sua superfície de ataque. Combinado com infraestrutura confiável — como armazenamento com suporte NVMe e proteção DDoS integrada — uma configuração SSH adequadamente endurecida oferece um canal de gerenciamento rápido, resiliente e genuinamente seguro.
Se você ainda não escolheu um ambiente de hospedagem, considere explorar planos de VPS Hosting que incluem acesso root completo, recursos dedicados e a flexibilidade de implementar todas as medidas de segurança abordadas neste guia.
Pré-requisitos
Antes de começar, confirme que tem o seguinte em lugar:
| Requisito | Detalhes |
|---|---|
| Um VPS em funcionamento | Qualquer distribuição Linux (Ubuntu, Debian, CentOS, AlmaLinux, etc.) com um SO instalado |
| Cliente SSH | Linux/macOS: comando ssh integrado. Windows: PuTTY, Windows Terminal, ou WSL |
| Endereço IP do servidor | Fornecido no seu painel de controlo de alojamento após o aprovisionamento |
| Credenciais de login | Nome de utilizador padrão (root ou um utilizador com permissões sudo) e palavra-passe inicial |
| Familiaridade básica com terminal | Capacidade de executar comandos e editar ficheiros com nano ou vim |
> Dica: Se está a gerir múltiplos servidores ou precisa de uma interface gráfica juntamente com SSH, consulte Painéis de Controlo VPS para opções como cPanel, Plesk, e DirectAdmin que complementam o acesso por linha de comandos.
Conectar-se ao seu VPS via SSH
No Linux ou macOS
Abra seu terminal e execute:
ssh username@your_server_ipSubstitua username pelo seu nome de utilizador real (normalmente root para um VPS novo) e your_server_ip pelo endereço IP público do seu servidor.
Exemplo:
ssh root@203.0.113.45Aviso de primeira conexão:
The authenticity of host '203.0.113.45 (203.0.113.45)' can't be established.
ED25519 key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?Digite yes e pressione Enter. Isto adiciona a chave do host do servidor ao seu ficheiro ~/.ssh/known_hosts. Nas conexões subsequentes, SSH verificará esta impressão digital automaticamente — se alguma vez mudar inesperadamente, trate-a como um potencial incidente de segurança.
Introduza a sua palavra-passe quando solicitado.
No Windows Usando PuTTY
- Descarregue e abra PuTTY em putty.org.
- No campo Host Name (or IP address), introduza o endereço IP do seu servidor.
- Confirme que Port está definido como
22e Connection type éSSH. - Clique em Open.
- Aceite a impressão digital da chave do host quando solicitado.
- Introduza o seu nome de utilizador e palavra-passe.
> Alternativa Windows 10/11: Windows Terminal e PowerShell incluem um cliente OpenSSH nativo. Pode utilizar a mesma sintaxe ssh username@your_server_ip que no Linux/macOS — nenhuma ferramenta de terceiros necessária.
Hardening SSH: Configuração Passo a Passo
Todo o comportamento do SSH é controlado por um único ficheiro de configuração:
/etc/ssh/sshd_configAbra-o com privilégios elevados:
sudo nano /etc/ssh/sshd_configTrabalhe em cada passo de hardening abaixo. Após fazer todas as alterações, reiniciará o serviço uma vez — coberto na próxima secção.
Passo 1: Alterar a Porta SSH Padrão
A porta 22 é a primeira porta que os bots verificam. Mover SSH para uma porta não-padrão elimina a grande maioria do ruído automatizado nos seus registos.
Localize esta linha:
#Port 22Altere-a para uma porta à sua escolha (use um número entre 1024 e 65535 que não seja utilizado por outro serviço):
Port 2222Remova o # para descomentar a linha. Guarde com CTRL+X, depois Y, depois Enter.
> Importante: Antes de reiniciar SSH, certifique-se de que a sua firewall permite a nova porta. Consulte a nota de firewall abaixo.
Atualize a sua firewall (exemplo UFW):
sudo ufw allow 2222/tcp
sudo ufw deny 22/tcp
sudo ufw reloadAtualize a sua firewall (exemplo firewalld):
sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --permanent --remove-service=ssh
sudo firewall-cmd --reloadPasso 2: Desativar Login de Root
Permitir login direto de root sobre SSH é um risco de segurança significativo. Em vez disso, faça login como um utilizador regular e escale privilégios com sudo quando necessário.
Em sshd_config, encontre:
PermitRootLogin yesAltere para:
PermitRootLogin noAntes de desativar o login de root, certifique-se de que tem um utilizador não-root com privilégios sudo:
# Create a new user
adduser adminuser
# Grant sudo privileges
usermod -aG sudo adminuserTeste que este utilizador pode fazer login e executar comandos sudo *antes* de desativar o login de root e reiniciar SSH.
Passo 3: Desativar Autenticação por Palavra-passe (Após Configurar Chaves)
Uma vez que a autenticação por chave SSH esteja configurada (próxima secção), desative completamente o login baseado em palavra-passe para eliminar o risco de força bruta:
PasswordAuthentication noCertifique-se também de que estas diretivas relacionadas estão definidas:
ChallengeResponseAuthentication no
UsePAM noPasso 4: Diretivas Recomendadas Adicionais
Adicione ou verifique estas definições em sshd_config para uma linha de base de hardening abrangente:
# Limit authentication attempts per connection
MaxAuthTries 3
# Disconnect idle sessions after 5 minutes
ClientAliveInterval 300
ClientAliveCountMax 2
# Disable empty passwords
PermitEmptyPasswords no
# Restrict SSH to specific users (replace 'adminuser' with your username)
AllowUsers adminuser
# Use only strong protocol version
Protocol 2
# Disable X11 forwarding if not needed
X11Forwarding noConfigurar Autenticação por Chave SSH
A autenticação por chave SSH substitui senhas por um par de chaves criptográficas: uma chave privada que fica na sua máquina local e uma chave pública que fica no servidor. Mesmo que um atacante conheça seu nome de usuário, ele não pode se autenticar sem sua chave privada.
Passo 1: Gerar um Par de Chaves SSH (na Sua Máquina Local)
ssh-keygen -t ed25519 -C "your_email@example.com"> Por que Ed25519? É mais rápido e seguro que o algoritmo RSA mais antigo. Se seu sistema exigir RSA para compatibilidade, use ssh-keygen -t rsa -b 4096 em vez disso.
Você será solicitado a escolher um local de salvamento (o padrão ~/.ssh/id_ed25519 é adequado) e definir uma frase-passe. Sempre defina uma frase-passe — ela criptografa sua chave privada para que o acesso físico à sua máquina não comprometa automaticamente seus servidores.
Saída:
Your identification has been saved in /home/you/.ssh/id_ed25519
Your public key has been saved in /home/you/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx your_email@example.comPasso 2: Copiar a Chave Pública para Seu VPS
O método mais fácil usa ssh-copy-id:
ssh-copy-id -i ~/.ssh/id_ed25519.pub username@your_server_ipEste comando:
- Conecta ao seu servidor usando autenticação por senha.
- Cria
~/.ssh/authorized_keysno servidor se não existir. - Adiciona sua chave pública a esse arquivo.
- Define as permissões corretas automaticamente.
Método manual (se ssh-copy-id não estiver disponível):
# On your local machine, display your public key
cat ~/.ssh/id_ed25519.pub
# On your server, add it manually
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "paste-your-public-key-here" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keysPasso 3: Verificar Login Baseado em Chave Antes de Desabilitar Senhas
Não desabilite a autenticação por senha até confirmar que o login baseado em chave funciona. Abra uma nova janela de terminal e teste:
ssh -i ~/.ssh/id_ed25519 username@your_server_ip -p 2222Se você se conectar com sucesso sem ser solicitado a fornecer uma senha (apenas sua frase-passe de chave, se definida), prossiga para desabilitar PasswordAuthentication em sshd_config.
Reiniciar e Verificar o Serviço SSH
Após guardar todas as alterações em sshd_config, valide a sintaxe da configuração antes de reiniciar:
sudo sshd -tSe nenhum erro for devolvido, reinicie o daemon SSH:
sudo systemctl restart sshdVerifique se o serviço foi iniciado com sucesso:
sudo systemctl status sshdDeverá ver Active: active (running) no resultado.
> Dica crítica de segurança: Mantenha a sua sessão SSH atual aberta enquanto testa a nova configuração numa janela separada. Se algo correr mal, a sua sessão existente permanece ativa e pode reverter as alterações.
Testando Sua Configuração Segura
Teste 1: Conectar na Nova Porta com Sua Chave
Da sua máquina local:
ssh username@your_server_ip -p 2222Resultado esperado: Você está conectado usando sua chave SSH (solicitado para sua frase de passagem da chave se você definiu uma, mas não sua senha do servidor).
Teste 2: Confirmar que o Login Root Está Bloqueado
ssh root@your_server_ip -p 2222Resultado esperado:
Permission denied (publickey).ou
root@your_server_ip: Permission deniedTeste 3: Confirmar que a Autenticação por Senha Está Desativada
ssh username@your_server_ip -p 2222 -o PubkeyAuthentication=noResultado esperado:
Permission denied (publickey).Se a autenticação por senha ainda estivesse ativada, você seria solicitado a fornecer uma senha.
Endurecimento Adicional: Fail2Ban
Fail2Ban monitora ficheiros de registo e bane automaticamente endereços IP que mostram sinais de atividade maliciosa — como tentativas repetidas de login SSH falhadas. É um complemento essencial aos passos de endurecimento SSH acima.
Instalar Fail2Ban
Ubuntu/Debian:
sudo apt update && sudo apt install fail2ban -yCentOS/AlmaLinux/RHEL:
sudo dnf install epel-release -y
sudo dnf install fail2ban -yConfigurar Fail2Ban para SSH
Crie um ficheiro de substituição local (nunca edite o ficheiro padrão jail.conf diretamente):
sudo nano /etc/fail2ban/jail.localAdicione o seguinte:
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = 2222
logpath = %(sshd_log)s
backend = %(sshd_backend)sAjuste port para corresponder à sua porta SSH personalizada. Guarde, depois ative e inicie Fail2Ban:
sudo systemctl enable fail2ban
sudo systemctl start fail2banVerifique bans ativos e estado da jail:
sudo fail2ban-client status sshdCópia de Segurança das Suas Chaves SSH e Configuração
Um servidor bloqueado é um problema grave. Siga estas práticas para evitá-lo:
- Faça cópia de segurança da sua chave privada para um gestor de palavras-passe encriptado ou armazenamento offline.
- Guarde uma cópia de
sshd_configantes de fazer alterações:sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak - Utilize a consola out-of-band do seu fornecedor de alojamento (acesso VNC/KVM através do painel de controlo) como alternativa se perder o acesso SSH.
- Documente a sua porta personalizada — é fácil esquecer
2222quando está a alternar entre servidores.
Emparelhando SSH com a Infraestrutura de Hospedagem Certa
Uma configuração SSH segura é tão forte quanto a infraestrutura subjacente. Considere estes serviços complementares:
- Servidores Dedicados — Para cargas de trabalho que exigem desempenho máximo e isolamento completo de hardware, os servidores dedicados oferecem controle total sobre as camadas física e de software, incluindo configuração SSH.
- Certificados SSL — Proteja o lado voltado para a web das suas aplicações com certificados SSL/TLS confiáveis, complementando a segurança SSH do backend do seu servidor.
- Registo de Domínios — Registe e gerencie o seu domínio juntamente com a sua hospedagem, facilitando a configuração de controlos de acesso baseados em DNS e nomes de anfitrião do servidor.
Conclusão
Uma configuração SSH adequadamente configurada é uma das melhorias de segurança com maior impacto que você pode fazer em qualquer servidor Linux. Para resumir o que você implementou:
| Medida de Segurança | Benefício |
|---|---|
| Porta SSH personalizada | Elimina a varredura automatizada da porta 22 |
| Login root desativado | Remove a conta mais visada do acesso remoto |
| Autenticação por chave SSH | Substitui senhas adivinhadas por prova criptográfica |
| Autenticação por senha desativada | Fecha completamente o vetor de ataque de força bruta |
| Fail2Ban | Bloqueia automaticamente atacantes persistentes |
MaxAuthTries & timeouts | Limita a exposição a ataques lentos ou distribuídos |
Estas medidas funcionam em conjunto para criar uma defesa em camadas — cada uma significativa por si só, e significativamente mais forte em combinação.
Quer esteja executando um único site WordPress ou gerenciando uma frota de servidores de aplicações, começar com uma configuração SSH endurecida coloca você no controle. Combine com infraestrutura confiável de Alojamento VPS, mantenha suas chaves com backup e terá um ambiente de servidor seguro e profissional construído para durar.
em todos os serviços de alojamento