OffshoreVps
Segurança5 out. 20266 min de leituraPor a equipe da OffshoreVps

Chaves SSH explicadas: proteja o login do seu VPS em 5 minutos

Crie uma chave Ed25519, copie-a para o servidor, desative o login por senha com segurança e monte uma configuração SSH organizada. Faça isso em todo servidor novo.

Senhas de SSH são adivinhadas. Chaves não. Mudar seu VPS para login por chave é a maior melhoria de segurança que você pode fazer, e leva cerca de cinco minutos.

Janela de terminal em um VPS mostrando os comandos usados para chaves SSH de um VPS, começando com “ssh-keygen -t ed25519 -C "me@laptop"”
O tipo de comandos que você executará no servidor neste guia.

Como funcionam as chaves SSH

Você cria um par de arquivos. A chave privada fica no seu computador e nunca é compartilhada. A chave pública vai para o servidor. Ao se conectar, o servidor desafia seu computador a provar que possui a chave privada correspondente, sem que a chave jamais atravesse a rede.

1. Crie um par de chaves

ssh-keygen -t ed25519 -C "me@laptop"

Chaves Ed25519 são curtas, rápidas e modernas. Escolha uma senha (passphrase) quando solicitado, para que um notebook roubado não signifique um servidor roubado. No Windows 10 e 11, o mesmo comando funciona no PowerShell.

2. Copie a chave pública para o servidor

ssh-copy-id user@your.server.ip

Sem o ssh-copy-id, acrescente o conteúdo de ~/.ssh/id_ed25519.pub a ~/.ssh/authorized_keys no servidor e depois execute chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys.

Os passos deste guia em ordem: 1. Como funcionam as chaves SSH; 2. 1. Crie um par de chaves; 3. 2. Copie a chave pública para o servidor; 4. 4. Desative o login por senha; 5. 5. Uma configuração de cliente organizada; 6. Boas práticas
Os passos deste guia, em ordem.

3. Teste antes de desativar as senhas

Abra um segundo terminal e faça login com a chave. Mantenha a primeira sessão aberta até isso funcionar, para que um erro não deixe você trancado do lado de fora.

4. Desative o login por senha

sudo nano /etc/ssh/sshd_config.d/99-hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
PubkeyAuthentication yes
sudo sshd -t && sudo systemctl reload ssh

A verificação sshd -t detecta erros de digitação antes que eles quebrem seu acesso. Em alguns sistemas o serviço se chama sshd em vez de ssh.

5. Uma configuração de cliente organizada

# ~/.ssh/config
Host myvps
    HostName your.server.ip
    User deploy
    IdentityFile ~/.ssh/id_ed25519

Agora basta digitar ssh myvps.

Boas práticas

  • Use uma chave separada por dispositivo, para poder revogar uma sem mexer nas outras.
  • Use o ssh-agent para digitar a senha (passphrase) uma vez por sessão.
  • Remova chaves do authorized_keys quando um dispositivo for perdido ou um funcionário sair.
  • Adicione o fail2ban para reduzir o ruído nos logs, como em nosso checklist de hardening em 15 minutos.