15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar
29.10.2024

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 -y

CentOS / RHEL / AlmaLinux / Rocky Linux

sudo yum install openssh-server -y

Fedora

sudo dnf install openssh-server -y

Arch Linux

sudo pacman -S openssh

Apó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 ssh

Ativar o SSH para Iniciar no Arranque

sudo systemctl enable ssh

Verificar se o Serviço Está em Execução

sudo systemctl status ssh

Uma 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_config

Este 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.bak

Abra o ficheiro com o seu editor de texto preferido:

sudo nano /etc/ssh/sshd_config

Após fazer quaisquer alterações, valide sempre a sintaxe da configuração antes de reiniciar o serviço para evitar ficar bloqueado:

sudo sshd -t

Se não forem devolvidos erros, aplique as alterações:

sudo systemctl restart ssh

Passo 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 22

Descomente-a e defina uma porta personalizada (escolha um número entre 1024 e 65535 que não esteja já em uso):

Port 2222

Guarde 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 yes

Altere para:

PermitRootLogin no

Os 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.0

Passo 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:

  1. Escolha um caminho de ficheiro (pressione Enter para aceitar o padrão ~/.ssh/id_ed25519)
  2. 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 -t
  • [ ] Acesso à consola fora de banda confirmado (KVM/VNC)

Conclusã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ê:

  1. Instalou e iniciou o servidor OpenSSH
  2. Alterou a porta padrão e desativou o login root
  3. Implementou autenticação baseada em chaves criptograficamente forte
  4. Configurou regras de firewall para restringir o acesso
  5. Implementou o Fail2Ban para bloquear tentativas de força bruta
  6. 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.

15%

Poupe 15% em todos os serviços

Teste as suas habilidades e obtenha Desconto em qualquer plano

Utilizar o código:

Skills
Começar a trabalhar