SSH e Chaves RSA Explicadas: Gere, Use e Proteja Seus Pares de Chaves
Um guia prático sobre pares de chaves SSH e RSA — como funcionam, como gerá-los no navegador e como usá-los para acesso seguro a servidores e criptografia.
A criptografia de chave pública é a base da comunicação segura na internet — conexões SSH, HTTPS, assinatura JWT e e-mail criptografado dependem dela. Entender como os pares de chaves funcionam torna você um desenvolvedor mais eficiente e um usuário mais consciente sobre segurança.
O conceito central: chaves pública e privada
Um par de chaves é composto por duas chaves matematicamente vinculadas:
- Chave privada — Fica na sua máquina. Nunca a compartilhe. Pense nela como sua identidade.
- Chave pública — Compartilhe livremente. Você a coloca em servidores, no GitHub, em configurações JWT.
A matemática funciona em uma direção: dados criptografados com uma chave pública só podem ser descriptografados com a chave privada correspondente. E dados assinados com uma chave privada podem ser verificados com a chave pública — sem revelar a chave privada.
Chaves SSH: acesso a servidores sem senha
SSH (Secure Shell) é o padrão para acesso remoto a servidores. A autenticação por senha funciona, mas tem pontos fracos — senhas podem ser adivinhadas, capturadas por phishing ou vazadas. A autenticação por chave SSH é fundamentalmente mais segura:
- Seu cliente apresenta uma prova criptográfica usando sua chave privada
- O servidor verifica a prova com a chave pública que você instalou
- Nenhuma senha trafega pela rede — não há nada para interceptar
Configurando autenticação SSH por chave:
# Gera um par de chaves (Ed25519 é o padrão moderno)
ssh-keygen -t ed25519 -C "seu-email@exemplo.com"
# Copia a chave pública para um servidor
ssh-copy-id usuario@seuservidor.com
# Conecta — sem necessidade de senha
ssh usuario@seuservidor.com
A chave pública vai para ~/.ssh/authorized_keys no servidor. A chave privada nunca sai da sua máquina.
Ed25519 vs RSA para SSH
Ed25519 é a recomendação atual:
- Chaves menores (256 bits) com segurança equivalente ou superior ao RSA-4096
- Geração e verificação de assinaturas mais rápidas
- Suportado por todos os servidores SSH modernos
RSA ainda é amplamente utilizado, especialmente em ambientes corporativos com sistemas mais antigos:
- 2048 bits é o tamanho mínimo aceitável atualmente
- 4096 bits oferece margem extra para chaves de longa duração
- Tamanhos de chave maiores implicam autenticação ligeiramente mais lenta
Gere chaves SSH no seu navegador com nosso SSH Key Generator — Ed25519 e ECDSA, usando a Web Crypto API. Nenhum material de chave sai do seu navegador.
Chaves RSA: criptografia e assinatura
As chaves RSA são usadas além do SSH — para certificados TLS, assinatura JWT, e-mail criptografado (PGP) e autenticação de API.
Casos de uso comuns do RSA:
JWT (JSON Web Tokens) com RS256:
- Assina tokens com sua chave privada RSA
- Clientes verificam com a chave pública
- Ao contrário do HS256 (simétrico), o verificador nunca precisa do segredo de assinatura
Assinatura de código:
- Assina um artefato de release com sua chave privada
- Usuários verificam a assinatura com sua chave pública publicada
- Comprova que o artefato veio de você e não foi adulterado
Certificados TLS/SSL:
- Autoridades certificadoras assinam sua chave pública com a chave privada delas
- Navegadores verificam usando a chave pública da CA (embutida no navegador)
Gere pares de chaves RSA no formato PEM com nosso RSA Key Generator — 2048 bits ou 4096 bits, inteiramente no seu navegador.
O formato PEM explicado
Chaves RSA e SSH são comumente distribuídas no formato PEM (Privacy Enhanced Mail):
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC7o4qne60...
-----END PRIVATE KEY-----
O cabeçalho e o rodapé identificam o tipo da chave. O conteúdo intermediário é o dado da chave codificado em base64. Cabeçalhos diferentes indicam tipos diferentes de chave:
BEGIN RSA PRIVATE KEY— Formato tradicional PKCS#1BEGIN PRIVATE KEY— Formato PKCS#8 (mais comum em ferramentas modernas)BEGIN PUBLIC KEY— Chave pública no formato PKCS#8BEGIN OPENSSH PRIVATE KEY— Formato próprio do OpenSSH para chaves SSH
Protegendo sua chave privada
A segurança da chave privada é fundamental:
- Nunca faça commit no git — Adicione
*.pem,id_rsaeid_ed25519ao.gitignore - Use uma frase-senha — Criptografa a chave em repouso. Mesmo que alguém obtenha o arquivo, não poderá usá-lo sem a frase-senha.
- Restrinja as permissões — O SSH exige
chmod 600nos arquivos de chave privada; ele recusa usar chaves legíveis por outros usuários - Rotacione se comprometida — Gere um novo par e remova a chave pública antiga de todos os servidores
# Define as permissões corretas na sua chave privada
chmod 600 ~/.ssh/id_ed25519
Impressões digitais de chave
Uma impressão digital (fingerprint) é um hash resumido de uma chave pública usado para verificar identidade sem comparar a chave completa:
ssh-keygen -lf ~/.ssh/id_ed25519.pub
# Saída: 256 SHA256:abc123... seu-email@exemplo.com (ED25519)
Ao se conectar a um servidor pela primeira vez, o SSH exibe a impressão digital do host e pede sua confirmação. Verifique essa impressão digital por um canal separado (a documentação do provedor do servidor) antes de aceitar.
Resumo
Pares de chaves SSH e RSA oferecem autenticação e criptografia fundamentalmente mais seguras do que senhas. Use Ed25519 para SSH, RSA-4096 para assinatura e criptografia, sempre proteja chaves privadas com uma frase-senha e gere chaves localmente — nunca permita que um serviço de terceiros gere sua chave privada por você.