Como Instalar e Configurar SSH no Linux: Um Guia Completo de Segurança para 2025
SSH é o ponto de acesso mais crítico no seu servidor. Uma configuração SSH incorreta pode ser comprometida em menos de cinco minutos por bots automatizados que varrem a internet. Quer esteja a gerir um ambiente de VPS Hosting, uma máquina bare-metal ou uma instância na nuvem, proteger o SSH corretamente desde o primeiro dia é inegociável.
Neste guia, aprenderá como instalar o OpenSSH, configurá-lo de forma segura, implementar autenticação baseada em chaves e aplicar técnicas de proteção de nível de produção — tudo num servidor Linux em 2025.
O Que É SSH e Por Que É Importante?
SSH (Secure Shell) é um protocolo de rede criptográfico que permite aos utilizadores ligar-se de forma segura a um sistema remoto através de uma rede não segura, como a internet. Todos os dados transmitidos entre o cliente e o servidor são totalmente encriptados, tornando-o o padrão da indústria para gestão remota de servidores.
Por padrão, o SSH opera na porta 22 e suporta:
- Login remoto em servidores e máquinas virtuais
- Transferência segura de ficheiros via SCP e SFTP
- Execução remota de comandos e automação com scripts
- Encaminhamento de portas e tunelamento para roteamento seguro de tráfego
- Encaminhamento X11 para acesso a aplicações gráficas
SSH é a sua interface administrativa principal. Trate-a como tal.
Passo 1: Instalar o Servidor OpenSSH
A maioria das distribuições Linux modernas já vem com o OpenSSH pré-instalado. Se estiver em falta, instale-o usando o gestor de pacotes adequado para a sua distribuição.
Ubuntu / Debian
sudo apt update
sudo apt install openssh-server -yCentOS / RHEL / AlmaLinux / Rocky Linux
sudo yum install openssh-server -yFedora
sudo dnf install openssh-server -yArch Linux
sudo pacman -S opensshApós a instalação, tanto o servidor OpenSSH (sshd) como o cliente OpenSSH ficam disponíveis, permitindo-lhe aceitar ligações de entrada e ligar-se a outros servidores remotos.
Passo 2: Iniciar e Ativar o Serviço SSH
Após a instalação, é necessário iniciar o daemon SSH (sshd) e configurá-lo para ser iniciado automaticamente no arranque do sistema.
Iniciar o Serviço SSH
sudo systemctl start sshAtivar o SSH para Iniciar no Arranque
sudo systemctl enable sshVerificar se o Serviço Está em Execução
sudo systemctl status sshUma saída saudável mostrará active (running) a verde. Se encontrar erros, verifique os registos do sistema com journalctl -xe para obter detalhes de diagnóstico.
Passo 3: Compreender o Ficheiro de Configuração SSH
O comportamento do SSH é controlado por um único ficheiro de configuração principal:
/etc/ssh/sshd_configEste ficheiro controla tudo — a porta de escuta, métodos de autenticação, utilizadores permitidos, restrições de login e muito mais. Crie sempre uma cópia de segurança antes de fazer alterações:
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bakAbra o ficheiro com o seu editor de texto preferido:
sudo nano /etc/ssh/sshd_configApós fazer quaisquer alterações, valide sempre a sintaxe da configuração antes de reiniciar o serviço para evitar ficar bloqueado:
sudo sshd -tSe não forem devolvidos erros, aplique as alterações:
sudo systemctl restart sshPasso 4: Alterações Essenciais na Configuração SSH
4.1 Alterar a Porta SSH Padrão
A porta 22 é a primeira porta que os scanners automatizados e bots de força bruta visam. Alterá-la para uma porta não padrão reduz drasticamente o ruído nos seus registos e diminui a exposição a ataques oportunistas.
Localize esta linha em sshd_config:
#Port 22Descomente-a e defina uma porta personalizada (escolha um número entre 1024 e 65535 que não esteja já em uso):
Port 2222Guarde o ficheiro, valide e reinicie o SSH:
sudo sshd -t && sudo systemctl restart ssh> Importante: Atualize as regras da sua firewall imediatamente após alterar a porta (consulte o Passo 6). Não o fazer irá bloqueá-lo fora do seu servidor.
4.2 Desativar o Login Root via SSH
Permitir o login direto como root via SSH é uma das configurações incorretas mais comuns e perigosas. Se um atacante adivinhar ou forçar a senha root, terá controlo total e irrestrito do seu sistema.
Encontre esta diretiva:
PermitRootLogin yesAltere para:
PermitRootLogin noOs utilizadores devem fazer login com uma conta padrão e escalar privilégios usando sudo quando necessário. Isto cria uma camada de auditoria essencial — cada ação privilegiada é registada contra uma conta de utilizador nomeada.
4.3 Impor Autenticação Baseada em Chaves e Desativar Senhas
A autenticação baseada em senha é inerentemente vulnerável a ataques de força bruta. Os pares de chaves SSH — uma combinação de chave pública/privada matematicamente ligada — são exponencialmente mais seguros.
Localize e defina as seguintes diretivas:
PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no> Aviso: Apenas desative a autenticação por senha depois de ter testado com sucesso o login baseado em chaves. Desativar senhas sem uma chave funcional irá bloqueá-lo permanentemente.
4.4 Diretivas Adicionais de Proteção
Adicione ou modifique estas configurações em sshd_config para uma configuração de produção protegida:
# Restrict login to specific users (replace 'youruser' with actual usernames)
AllowUsers youruser
# Disconnect idle sessions after 5 minutes
ClientAliveInterval 300
ClientAliveCountMax 2
# Limit authentication attempts per connection
MaxAuthTries 3
# Disable empty passwords
PermitEmptyPasswords no
# Disable X11 forwarding if not needed
X11Forwarding no
# Use only modern, secure protocol version
Protocol 2
# Restrict SSH to specific network interface (optional, replace with your IP)
ListenAddress 0.0.0.0Passo 5: Gerar e Implementar Pares de Chaves SSH
A autenticação por chave SSH substitui senhas por prova criptográfica de identidade. Veja como configurá-la corretamente.
Passo 5.1: Gerar um Par de Chaves na Sua Máquina Local
Execute este comando na sua estação de trabalho local (não no servidor):
ssh-keygen -t ed25519 -C "your_email@example.com"> Por que Ed25519? Ed25519 é um algoritmo moderno de curva elíptica que é mais rápido, mais seguro e produz chaves mais curtas do que o algoritmo RSA mais antigo. É a escolha recomendada em 2025.
Se o seu sistema ou ferramentas exigirem RSA por razões de compatibilidade, use uma chave de 4096 bits:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"Ser-lhe-á pedido que:
- Escolha um caminho de ficheiro (pressione Enter para aceitar o padrão
~/.ssh/id_ed25519) - Defina uma frase-passe opcional (fortemente recomendada — isto encripta a sua chave privada em repouso)
Isto gera dois ficheiros:
~/.ssh/id_ed25519 — A sua chave privada. Nunca a partilhe. Nunca a copie para um servidor.
~/.ssh/id_ed25519.pub — A sua chave pública. É isto que é instalado nos servidores.
Passo 5.2: Copiar a Chave Pública para o Servidor
Use ssh-copy-id para transferir de forma segura a sua chave pública para o servidor remoto:
ssh-copy-id -p 2222 username@your_server_ip
Substitua username pelo nome da sua conta no servidor e your_server_ip pelo endereço IP real.
Este comando acrescenta a sua chave pública a ~/.ssh/authorized_keys no servidor com as permissões corretas automaticamente.
Método manual (se ssh-copy-id não estiver disponível):
cat ~/.ssh/id_ed25519.pub | ssh username@your_server_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
Passo 5.3: Testar o Login Baseado em Chaves
Antes de desativar a autenticação por senha, verifique que o login baseado em chaves funciona:
ssh -p 2222 username@your_server_ip
Se se ligar com sucesso sem ser solicitada uma senha (ou apenas a frase-passe da sua chave), a autenticação baseada em chaves está a funcionar corretamente. Agora pode desativar com segurança a autenticação por senha em sshd_config.
Passo 6: Configurar a Sua Firewall para SSH
Uma firewall é a sua primeira linha de defesa. Configure-a sempre para permitir apenas a porta SSH que está a usar.
Usando UFW (Ubuntu / Debian)
# Allow your custom SSH port
sudo ufw allow 2222/tcp
# Enable the firewall
sudo ufw enable
# Verify the rules
sudo ufw status verbose
Usando firewalld (CentOS / RHEL / Fedora)
# Add the custom SSH port
sudo firewall-cmd --permanent --add-port=2222/tcp
# Remove the default port 22 (optional, after confirming new port works)
sudo firewall-cmd --permanent --remove-service=ssh
# Reload firewall rules
sudo firewall-cmd --reload
Restringir o Acesso SSH por Endereço IP
Para máxima segurança, limite o acesso SSH apenas a endereços IP conhecidos e de confiança:
# UFW example: allow SSH only from a specific IP
sudo ufw allow from 203.0.113.10 to any port 2222 proto tcp
Isto é especialmente eficaz em Servidores Dedicados onde controla todo o acesso administrativo a partir de um escritório fixo ou intervalo de IP VPN.
Passo 7: Medidas de Segurança Avançadas
7.1 Instalar e Configurar o Fail2Ban
O Fail2Ban monitoriza os ficheiros de registo SSH e bane automaticamente endereços IP que mostrem sinais de atividade de força bruta.
# Install Fail2Ban
sudo apt install fail2ban -y # Ubuntu/Debian
sudo yum install fail2ban -y # CentOS/RHEL
# Create a local configuration file
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
Edite /etc/fail2ban/jail.local e configure a prisão SSH:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
Inicie e ative o Fail2Ban:
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
7.2 Usar o Ficheiro de Configuração SSH para Gestão do Lado do Cliente
Na sua máquina local, crie ou edite ~/.ssh/config para simplificar ligações e impor configurações de segurança:
Host myserver
HostName your_server_ip
User youruser
Port 2222
IdentityFile ~/.ssh/id_ed25519
ServerAliveInterval 60
ServerAliveCountMax 3
Com esta configuração, pode ligar-se simplesmente digitando:
ssh myserver
7.3 Autenticação de Dois Fatores (2FA) para SSH
Para ambientes que requerem o mais alto nível de segurança de acesso — como bases de dados de produção, sistemas financeiros ou infraestrutura regulamentada por conformidade — considere adicionar autenticação de dois fatores baseada em TOTP usando Google Authenticator ou Authy juntamente com chaves SSH.
sudo apt install libpam-google-authenticator -y
google-authenticator
Em seguida, configure o PAM e sshd_config para exigir tanto uma chave como uma senha de uso único. Isto cria um verdadeiro fluxo de autenticação multifator.
Passo 8: Testar e Resolver Problemas de SSH
Após concluir a sua configuração, verifique sistematicamente que tudo funciona conforme esperado.
Teste de Ligação
ssh -p 2222 -v username@your_server_ip
O sinalizador -v ativa o modo verbose, imprimindo informações detalhadas de depuração sobre cada etapa da ligação — inestimável para diagnosticar falhas de autenticação.
Problemas Comuns e Soluções
Problema
Causa Provável
Solução
Connection refused
SSH não está em execução ou porta errada
Verifique systemctl status ssh e as regras da firewall
Permission denied (publickey)
Chave não está em authorized_keys ou permissões erradas
Verifique se ~/.ssh/authorized_keys existe com chmod 600
Host key verification failed
Impressão digital do servidor alterada
Remova a entrada antiga de ~/.ssh/known_hosts
Connection timed out
Firewall a bloquear a porta
Verifique as regras UFW/firewalld e os grupos de segurança da nuvem
Bloqueado após alteração de configuração
Configuração incorreta em sshd_config
Use acesso via consola/KVM para reverter as alterações
Comandos de Diagnóstico
# Check SSH service status
sudo systemctl status ssh
# View real-time SSH logs
sudo journalctl -u ssh -f
# Check which port SSH is listening on
sudo ss -tlnp | grep sshd
# Test configuration file syntax
sudo sshd -t
Referência Completa de sshd_config Protegido
Aqui está um sshd_config pronto para produção que incorpora todas as recomendações de segurança deste guia:
# Network
Port 2222
ListenAddress 0.0.0.0
Protocol 2
# Authentication
PermitRootLogin no
PubkeyAuthentication yes
PasswordAuthentication no
PermitEmptyPasswords no
ChallengeResponseAuthentication no
MaxAuthTries 3
LoginGraceTime 30
# Session Management
ClientAliveInterval 300
ClientAliveCountMax 2
MaxSessions 5
# Access Control
AllowUsers youruser
# Features (disable what you don't need)
X11Forwarding no
AllowTcpForwarding no
GatewayPorts no
PermitUserEnvironment no
# Logging
SyslogFacility AUTH
LogLevel VERBOSE
Por Que a Sua Infraestrutura de Hospedagem É Importante para a Segurança SSH
A segurança da sua configuração SSH não existe isoladamente — depende fortemente da infraestrutura subjacente. Uma configuração SSH devidamente protegida é mais eficaz quando implementada num servidor que já fornece:
Proteção DDoS para absorver ataques volumétricos antes de chegarem à sua porta SSH
Armazenamento NVMe para escrita rápida de registos e tempos de resposta rápidos do Fail2Ban
Portas de rede de 1 Gbps para garantir estabilidade de ligação sob carga
Acesso KVM/consola como método de recuperação fora de banda caso se bloqueie acidentalmente
Os planos de VPS Hosting da AlexHost incluem tudo o acima, com acesso root completo e suporte para configurações de firewall personalizadas — tornando-os ideais para implementar a configuração SSH protegida descrita neste guia.
Se precisar de um painel de controlo para gerir o seu servidor juntamente com SSH, explore Painéis de Controlo VPS para opções incluindo cPanel, Plesk e DirectAdmin. Para equipas que gerem múltiplas propriedades web, a Hospedagem Web Partilhada fornece um ambiente gerido onde a proteção SSH é tratada ao nível da infraestrutura.
E se estiver a executar serviços web protegidos por SSL juntamente com o seu servidor protegido por SSH, combinar a sua configuração com uma solução de Certificados SSL de confiança garante encriptação de ponta a ponta em todos os seus serviços públicos.
Lista de Verificação de Segurança SSH
Use esta lista de verificação antes de considerar a sua configuração SSH pronta para produção:
[ ] Servidor OpenSSH instalado e em execução
[ ] Porta padrão 22 alterada para uma porta personalizada
[ ] Login root desativado (PermitRootLogin no)
[ ] Par de chaves Ed25519 ou RSA-4096 gerado
[ ] Chave pública implementada em authorized_keys no servidor
[ ] Login baseado em chaves testado com sucesso
[ ] Autenticação por senha desativada
[ ] Firewall configurada para permitir apenas a nova porta SSH
[ ] Fail2Ban instalado e configurado
[ ] MaxAuthTries definido para 3 ou menos
[ ] ClientAliveInterval configurado para terminar sessões inativas
[ ] Sintaxe de sshd_config validada com sudo sshd -tConclusão
Instalar e configurar o SSH corretamente é uma das competências mais fundamentais na administração de sistemas Linux. Uma instalação SSH padrão é uma responsabilidade; uma configuração SSH protegida é um ativo. Ao seguir este guia, você:
- Instalou e iniciou o servidor OpenSSH
- Alterou a porta padrão e desativou o login root
- Implementou autenticação baseada em chaves criptograficamente forte
- Configurou regras de firewall para restringir o acesso
- Implementou o Fail2Ban para bloquear tentativas de força bruta
- Estabeleceu uma metodologia completa de resolução de problemas
O SSH, quando devidamente configurado, torna-se um gateway poderoso, fiável e seguro para gestão remota, pipelines de automação e comunicação encriptada entre sistemas. Combinado com infraestrutura de hospedagem robusta — como os Servidores Dedicados da AlexHost com mitigação DDoS ao nível do hardware — tem uma base que é genuinamente difícil de comprometer.
Reveja a sua configuração SSH periodicamente. Rode as suas chaves anualmente. Monitorize os seus registos. A segurança não é uma tarefa única — é uma prática contínua.
