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
30.10.2024
1 +1

Como Instalar e Configurar um Servidor SSH no Debian (Guia Completo)

SSH (Secure Shell) é um dos protocolos mais fundamentais na administração moderna de servidores. Fornece um canal encriptado e autenticado para aceder e gerir remotamente servidores Linux — tornando-o uma ferramenta indispensável para administradores de sistemas, programadores e qualquer pessoa que gira uma máquina remota. Quer esteja a gerir um ambiente de Alojamento VPS ou um Servidor Dedicado, instalar e proteger corretamente o seu servidor SSH é uma das primeiras tarefas que deve concluir.

Neste guia abrangente, aprenderá como instalar o OpenSSH no Debian, configurá-lo de forma segura, configurar a autenticação baseada em chaves e aplicar medidas de proteção de melhores práticas para proteger o seu servidor contra acessos não autorizados.

Pré-requisitos

Antes de começar, certifique-se de que tem:

  • Um servidor baseado em Debian (Debian 10 Buster, 11 Bullseye ou 12 Bookworm)
  • Um utilizador não-root com privilégios sudo, ou acesso root direto para a configuração inicial
  • Familiaridade básica com a linha de comandos Linux
  • Acesso de rede ao seu servidor

Passo 1: Atualize o Seu Sistema e Instale o Servidor OpenSSH

Antes de instalar qualquer software, é boa prática atualizar o índice de pacotes e atualizar os pacotes existentes para as suas versões mais recentes. Isto garante compatibilidade e reduz vulnerabilidades de segurança.

sudo apt update && sudo apt upgrade -y

Agora instale o pacote do servidor OpenSSH:

sudo apt install openssh-server -y

O gestor de pacotes irá descarregar e instalar o OpenSSH juntamente com quaisquer dependências necessárias. Assim que a instalação estiver concluída, o serviço SSH é normalmente iniciado automaticamente.

Verifique se o Serviço SSH Está em Execução

Confirme que o serviço ssh está ativo e ativado:

sudo systemctl status ssh

Deverá ver uma saída semelhante a:

● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since ...

Se o serviço não estiver em execução, inicie-o manualmente e ative-o para iniciar no arranque:

sudo systemctl start ssh
sudo systemctl enable ssh

Passo 2: Compreender o Ficheiro de Configuração SSH

O ficheiro de configuração principal do daemon SSH está localizado em:

/etc/ssh/sshd_config

Este ficheiro controla praticamente todos os aspetos do comportamento do seu servidor SSH — desde a porta em que escuta, até aos métodos de autenticação permitidos. Antes de fazer quaisquer alterações, crie uma cópia de segurança do ficheiro original:

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

Agora abra o ficheiro com um editor de texto:

sudo nano /etc/ssh/sshd_config

As secções abaixo guiam-no pelas opções de configuração mais importantes.

Passo 3: Proteja a Sua Configuração SSH

3.1 Altere a Porta SSH Predefinida (Recomendado)

Por predefinição, o SSH escuta na porta 22. Isto é amplamente conhecido, e bots automatizados verificam constantemente a internet em busca de conexões abertas na porta 22 para tentar ataques de força bruta. Alterar a porta para um valor não padrão reduz significativamente este ruído.

Localize a seguinte linha (pode estar comentada com #):

#Port 22

Descomente-a e altere o valor:

Port 2222

> Nota: Escolha um número de porta entre 1024 e 65535 que não esteja já em uso por outro serviço. Alternativas comuns incluem 2222, 2200 ou 4422. Lembre-se de atualizar as suas regras de firewall em conformidade (consulte o Passo 5).

3.2 Desative o Login Root (Fortemente Recomendado)

Permitir o login root direto via SSH é um risco de segurança significativo. Se um atacante adivinhar ou forçar a senha root, obtém controlo total do seu servidor. Desative-o encontrando e modificando esta diretiva:

PermitRootLogin no

Se precisar de realizar tarefas administrativas, inicie sessão como utilizador regular e escale privilégios usando sudo.

3.3 Restrinja o Acesso SSH a Utilizadores Específicos

Pode criar uma lista de permissões de contas de utilizador específicas que têm permissão para iniciar sessão via SSH. Isto impede que contas não autorizadas ou do sistema sejam usadas como pontos de entrada:

AllowUsers your_username deploy_user

Alternativamente, pode restringir o acesso por grupo:

AllowGroups sshusers

3.4 Desative a Autenticação por Senha (Após Configurar a Autenticação por Chave)

Assim que tiver a autenticação por chave SSH a funcionar (consulte o Passo 6), desative completamente os logins baseados em senha para eliminar vetores de ataque de força bruta:

PasswordAuthentication no

3.5 Diretivas Adicionais de Proteção

Adicione ou modifique as seguintes linhas para uma postura de segurança mais robusta:

# Disable empty passwords
PermitEmptyPasswords no

# Limit authentication attempts per connection
MaxAuthTries 3

# Set idle session timeout (seconds)
ClientAliveInterval 300
ClientAliveCountMax 2

# Disable X11 forwarding if not needed
X11Forwarding no

# Use only SSH Protocol 2
Protocol 2

# Restrict to specific address family (IPv4 only example)
AddressFamily inet

A sua secção relevante final de /etc/ssh/sshd_config deverá ter um aspeto semelhante a este:

Port 2222
PermitRootLogin no
MaxAuthTries 3
PasswordAuthentication no
PermitEmptyPasswords no
AllowUsers your_username
X11Forwarding no
ClientAliveInterval 300
ClientAliveCountMax 2

Passo 4: Valide a Configuração e Reinicie o SSH

Antes de reiniciar o serviço, teste sempre o seu ficheiro de configuração em busca de erros de sintaxe. Um sshd_config mal configurado pode bloqueá-lo fora do seu servidor:

sudo sshd -t

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

sudo systemctl restart ssh

Verifique se o serviço reiniciou corretamente:

sudo systemctl status ssh

> ⚠️ Importante: Antes de fechar a sua sessão SSH atual, abra uma segunda janela de terminal e teste a nova configuração. Desta forma, se algo correr mal, ainda tem uma sessão ativa para corrigir o problema.

Passo 5: Atualize as Regras de Firewall

Se estiver a usar UFW (Uncomplicated Firewall) — a ferramenta de firewall predefinida no Debian — precisa de permitir tráfego na sua nova porta SSH.

Se alterou a porta para 2222:

sudo ufw allow 2222/tcp
sudo ufw reload

Se manteve a porta predefinida 22:

sudo ufw allow ssh
sudo ufw reload

Verifique o estado atual da firewall:

sudo ufw status verbose

Se o UFW ainda não estiver ativado, ative-o (certifique-se de que a sua porta SSH está permitida primeiro para evitar bloqueio):

sudo ufw enable

Passo 6: Configure a Autenticação SSH Baseada em Chaves

A autenticação por chave SSH é muito mais segura do que o login baseado em senha. Utiliza criptografia assimétrica — um par de chaves composto por uma chave privada (mantida em segredo na sua máquina cliente) e uma chave pública (armazenada no servidor). Mesmo que um atacante conheça o seu nome de utilizador, não pode iniciar sessão sem a chave privada.

6.1 Gere um Par de Chaves SSH na Sua Máquina Cliente

Execute o seguinte comando na sua máquina local (não no servidor):

ssh-keygen -t ed25519 -C "your_email@example.com"

> Porquê Ed25519? Ed25519 é um algoritmo moderno de curva elíptica que oferece melhor segurança e desempenho em comparação com o algoritmo RSA mais antigo. Se o seu sistema não o suportar, use RSA com uma chave de 4096 bits: ssh-keygen -t rsa -b 4096

Quando solicitado, escolha um local de gravação (o predefinido é ~/.ssh/id_ed25519) e defina uma frase-passe forte para uma camada adicional de proteção.

6.2 Copie a Chave Pública para o Seu Servidor

Use ssh-copy-id para transferir de forma segura a sua chave pública para o servidor:

ssh-copy-id -p 2222 username@your_server_ip

Este comando acrescenta a sua chave pública a ~/.ssh/authorized_keys no servidor com as permissões corretas.

Se ssh-copy-id não estiver disponível, pode fazê-lo manualmente:

# On your local machine, display your public key:
cat ~/.ssh/id_ed25519.pub

# On the server, add it to authorized_keys:
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "your_public_key_here" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

6.3 Teste o Login Baseado em Chave

A partir da sua máquina cliente, ligue-se ao servidor:

ssh -p 2222 username@your_server_ip

Deverá ser solicitada a sua frase-passe da chave (não a sua senha de conta). Uma vez confirmada, está conectado de forma segura.

6.4 Desative a Autenticação por Senha

Agora que a autenticação por chave está a funcionar, volte a /etc/ssh/sshd_config e certifique-se de que:

PasswordAuthentication no

Reinicie o SSH para aplicar:

sudo systemctl restart ssh

Passo 7: Monitorize e Mantenha a Segurança SSH

Instalar e configurar o SSH não é uma tarefa única. A monitorização contínua é essencial para detetar tentativas de intrusão e manter um ambiente seguro.

Verifique Tentativas de Login Falhadas

sudo journalctl -u ssh | grep "Failed password"

Ou usando lastb para ver tentativas de login falhadas:

sudo lastb | head -20

Instale o Fail2Ban para Bloquear Ataques de Força Bruta

O Fail2Ban monitoriza ficheiros de registo e bloqueia automaticamente endereços IP que mostrem comportamento malicioso (como tentativas de login falhadas repetidas):

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

Crie uma configuração de jail local para SSH:

sudo nano /etc/fail2ban/jail.local

Adicione o seguinte:

[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 3600
findtime = 600

Reinicie o Fail2Ban para aplicar:

sudo systemctl restart fail2ban

Mantenha o OpenSSH Atualizado

Atualize regularmente o OpenSSH para corrigir vulnerabilidades conhecidas:

sudo apt update && sudo apt upgrade openssh-server -y

Ligar ao Seu Servidor SSH: Referência Rápida

CenárioComando
Porta predefinida (22)ssh username@your_server_ip
Porta personalizadassh -p 2222 username@your_server_ip
Ficheiro de identidade específicossh -i ~/.ssh/id_ed25519 username@your_server_ip
Saída detalhada (depuração)ssh -v username@your_server_ip
Copiar ficheiros via SSHscp -P 2222 file.txt username@your_server_ip:/path/

Escolher o Ambiente de Alojamento Certo para SSH

Os passos neste guia aplicam-se a qualquer servidor baseado em Debian, mas o tipo de alojamento que utiliza afeta a forma como acede e gere o seu ambiente:

  • Alojamento VPS: Um VPS com cPanel ou outros Painéis de Controlo VPS dá-lhe acesso SSH root completo juntamente com uma interface de gestão gráfica — ideal para utilizadores que querem tanto poder como conveniência.
  • Servidores Dedicados: Com um Servidor Dedicado, tem controlo completo ao nível do hardware, tornando a configuração SSH ainda mais crítica, pois é o único responsável pela segurança da máquina.
  • Alojamento Partilhado: Os planos de Alojamento Web Partilhado normalmente fornecem acesso SSH limitado ou nenhum, pois o ambiente é partilhado entre vários utilizadores. Se o SSH for um requisito, a atualização para um VPS é o caminho recomendado.

Conclusão

Instalar e configurar um servidor SSH no Debian é uma competência fundamental para qualquer administrador de sistemas ou programador que trabalhe com servidores Linux remotos. Ao seguir este guia, você:

  • ✅ Instalou o Servidor OpenSSH no Debian
  • ✅ Protegeu a configuração SSH alterando a porta predefinida, desativando o login root e restringindo o acesso de utilizadores
  • ✅ Configurou a autenticação SSH baseada em chaves para logins seguros sem senha
  • ✅ Configurou regras de firewall para proteger a sua porta SSH
  • ✅ Implementou o Fail2Ban para se defender contra ataques de força bruta
  • ✅ Estabeleceu uma rotina de monitorização e manutenção

Um servidor SSH devidamente protegido reduz drasticamente a sua superfície de ataque e fornece-lhe um gateway encriptado e fiável para gerir a sua infraestrutura remotamente. Quer esteja apenas a começar com o seu primeiro servidor ou a proteger um ambiente de produção, estas práticas são elementos fundamentais de um sistema Linux seguro.

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