PureTools

Chaves SSH: Gere, Configure e Gerencie Como um Pro

PureTools Team· 7 min de leitura
Chaves SSH: Gere, Configure e Gerencie Como um Pro

Chaves SSH: Pare de Digitar Senhas

Chaves SSH substituem autenticação por senha com pares de chaves criptográficas. Você mantém a chave privada na sua máquina, coloca a chave pública no servidor (ou GitHub), e nunca digita uma senha novamente. É mais seguro e mais conveniente.

Gerar uma Chave

# Ed25519 (recomendado — rápido, seguro, chaves curtas)
ssh-keygen -t ed25519 -C "seu@email.com"

# RSA (compatibilidade legada, se Ed25519 não for suportado)
ssh-keygen -t rsa -b 4096 -C "seu@email.com"

Você será perguntado sobre localização e passphrase. Use o local padrão (~/.ssh/id_ed25519) e sempre defina uma passphrase — ela protege a chave se sua máquina for comprometida.

Adicionar ao GitHub

# Copiar chave pública para clipboard
# macOS
pbcopy < ~/.ssh/id_ed25519.pub

# Linux
xclip -selection clipboard < ~/.ssh/id_ed25519.pub

# Windows
cat ~/.ssh/id_ed25519.pub | clip

Vá ao GitHub → Settings → SSH and GPG keys → New SSH key. Cole. Teste:

ssh -T git@github.com
# Hi username! You've been successfully authenticated

SSH Agent (Não Redigite Sua Passphrase)

# Iniciar o agente
eval "$(ssh-agent -s)"

# Adicionar sua chave (pede passphrase uma vez)
ssh-add ~/.ssh/id_ed25519

# macOS: adicionar ao Keychain (persiste entre reboots)
ssh-add --apple-use-keychain ~/.ssh/id_ed25519

O Arquivo SSH Config

O poder real. Crie ~/.ssh/config:

# GitHub pessoal
Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_personal

# GitHub do trabalho (conta diferente)
Host github-work
  HostName github.com
  User git
  IdentityFile ~/.ssh/id_ed25519_work

# Servidor de produção
Host prod
  HostName 203.0.113.42
  User deploy
  IdentityFile ~/.ssh/id_ed25519
  Port 2222

# Jump host (bastion)
Host internal-db
  HostName 10.0.1.50
  User admin
  ProxyJump bastion

Host bastion
  HostName bastion.example.com
  User admin
  IdentityFile ~/.ssh/id_ed25519

Agora em vez de ssh deploy@203.0.113.42 -p 2222 -i ~/.ssh/id_ed25519, apenas digite ssh prod.

Para o GitHub do trabalho, clone com: git clone git@github-work:empresa/repo.git

Copiar Chave para Servidor

# O jeito fácil
ssh-copy-id user@servidor

# Jeito manual
cat ~/.ssh/id_ed25519.pub | ssh user@servidor "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

# Corrigir permissões (se login falhar)
ssh user@servidor "chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys"

Tipos de Chave Comparados

TipoTamanhoSegurançaCompatibilidade
Ed25519256 bits (fixo)ExcelenteOpenSSH 6.5+ (2014)
RSA 40964096 bitsBoaUniversal
ECDSA256/384/521 bitsBoaOpenSSH 5.7+
DSA1024 bitsDepreciadoNão use

Dicas de Segurança

  • Sempre use passphrase na chave privada.
  • Nunca compartilhe ou commite sua chave privada. O arquivo sem .pub é privado.
  • Use chaves diferentes para serviços diferentes (GitHub pessoal, trabalho, servidores).
  • Desabilite auth por senha em servidores após configurar SSH keys: PasswordAuthentication no em /etc/ssh/sshd_config.
  • Rotacione chaves periodicamente, especialmente quando membros do time saem.

Gere chaves: Gerador de Senhas — crie passphrases fortes para suas chaves SSH.