Chaves SSH Explicadas Ed25519 vs ECDSA vs RSA (Pare de pressionar Enter)
Você digitou ssh-keygen, pressionou Enter quatro vezes e acabou com RSA. Aqui está por que Ed25519 é a escolha correta, o que ECDSA faz errado e as únicas situações em que RSA realmente é necessário.
Todo desenvolvedor já o fez. Você digita ssh-keygen, um assistente aparece pedindo sobre o tipo de chave, comprimento em bits, frase de senha, caminho de saída — e você simplesmente aperta Enter até o impresso de impressão aleatória aparecer. Parabéns, agora você tem uma chave RSA-2048 e não sabe por que esse número.
Resposta curta: use Ed25519. Execute ssh-keygen -t ed25519 -C "you@example.com" e pare de ler respostas no StackOverflow a partir de 2012. O restante deste guia explica por que — e abrange os casos legítimos em que a RSA é realmente necessária.
Os Três Algoritmos
RSA
RSA (Rivest–Shamir–Adleman, 1977) foi o algoritmo padrão de chave pública da internet por décadas. Sua segurança depende da dificuldade de fatorar inteiros grandes, o que significa que você precisa de chaves grandes para se manter seguro — no mínimo 2048 bits, preferencialmente 4096. Uma chave pública RSA de 4096 bits é aproximadamente 800 bytes. Cada conexão envolve operações com esses grandes números, o que é mais lento do que as alternativas modernas.
O único argumento real para o RSA é a compatibilidade. Servidores SSH antigos, hardware legado, dispositivos de rede proprietários da década de 2010 — todos eles usam RSA. Se você estiver conectando a algo que foi configurado durante a administração Obama e nunca tocado desde, o RSA pode ser sua única opção.
ECDSA
ECDSA (Elliptic Curve Digital Signature Algorithm) chegou como uma alternativa mais rápida e menor ao RSA. Uma chave ECDSA de 256 bits oferece aproximadamente a mesma segurança de uma chave RSA de 3072 bits. Matemática melhor, chave menor, operações mais rápidas — parece um ganho.
O problema é que as curvas que o OpenSSH usa por padrão são as curvas NIST (P-256, P-384, P-521). Essas curvas carregam uma preocupação legítima. A participação da NIST nos padrões de curvas elípticas é historicamente problemática — a agência ajudou a padronizar o Dual_EC_DRBG, um gerador de números aleatórios influenciado pela NSA, posteriormente descoberto com uma falha de segurança. O ECDSA em si não está quebrado, mas os parâmetros das curvas NIST têm critérios de design obscuros. Ninguém pode provar que eles não foram escolhidos para dar vantagem assimétrica a alguém. A maioria dos desenvolvedores não é alvo da NSA, mas não há razão para aceitar "provavelmente ok" quando uma opção provavelmente melhor existe.
Ed25519
Ed25519 (EdDSA sobre a curva Curve25519) é o que você deve usar. Foi projetado por Daniel J. Bernstein com critérios de design totalmente públicos — os parâmetros da curva são derivados de números "não podem ser colocados nas minhas mangas", e não de um processo obscuro de comitê.
Os números práticos: a chave pública Ed25519 é de 68 bytes. Assinatura e verificação são mais rápidas do que RSA e ECDSA. O algoritmo é imune a ataques de tempo por construção — sem ramificações dependentes de segredos, sem operações de tempo variável. O suporte foi implementado no OpenSSH 6.5 em 2014. GitHub, GitLab e Bitbucket têm suporte há anos. Não há desvantagem em comparação com ECDSA e todas as vantagens em comparação com RSA.
Comparação lado a lado
| Propriedade | RSA (4096-bit) | ECDSA (P-256) | Ed25519 |
|---|---|---|---|
| Tamanho da chave pública | ~800 bytes | ~200 bytes | 68 bytes |
| Segurança equivalente | ~140 bits | ~128 bits | ~128 bits |
| Velocidade de assinatura | Lento | Rápido | Muito rápido |
| Resistente a ataques de tempo | Não | Não | Sim (por design) |
| Concerns com a confiança da curva | Nenhum | Curvas NIST (contestadas) | Nenhuma (Curve25519) |
| Suporte no OpenSSH desde | Sempre | 5.7 (2011) | 6.5 (2014) |
| GitHub / GitLab / Bitbucket | Sim | Sim | Sim |
Como Gerar Cada Tipo
A escolha padrão — use isso:
ssh-keygen -t ed25519 -C "you@example.com"
Sistema legado exige RSA? Use no mínimo 4096 bits:
ssh-keygen -t rsa -b 4096 -C "you@example.com"
ECDSA, se você tiver uma razão específica para evitar o Ed25519 (provavelmente não):
ssh-keygen -t ecdsa -b 521 -C "you@example.com"
Se você quer uma interface em vez de memorizar flags, o Gerador de Chave SSH no IO Tools você pode escolher o algoritmo, comprimento em bits e opções de frase de senha sem tocar no terminal.
Casos em que o RSA é realmente necessário
Existem casos legítimos em que o Ed25519 não é uma opção:
- Servidores SSH anteriores a 2014 — qualquer daemon SSH rodando com OpenSSH anterior a 6.5 não aceitará Ed25519. Raro, mas real: sistemas embarcados, dispositivos de rede, caixas antigos do RHEL 6 que nunca tiveram o OpenSSH atualizado.
- Ambientes FIPS-140-2 — ambientes federais e alguns de empresas regulados exigem algoritmos validados FIPS. O Ed25519 não é aprovado FIPS. Use RSA-3072+ ou ECDSA com P-384 nesses ambientes.
- Política de CA SSH organizacional — algumas empresas operam suas próprias autoridades de certificados SSH com exigências forçadas de tipo de chave. Verifique antes de gerar uma chave que será rejeitada na inscrição.
Fora desses três casos, o argumento pelo RSA é inércia, não mérito.
A frase de senha que você pulou
Quando ssh-keygen pede uma frase de senha e você aperta Enter para pular, a chave privada fica no disco em texto claro. Se alguém obter seu laptop, obterá acesso a tudo o que a chave pode acessar — todos os servidores, todos os hosts Git, todos os ambientes de produção. Adicione uma frase de senha. Use ssh-agent para que você digite apenas uma vez por sessão:
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
No macOS, adicione --apple-use-keychain para ssh-add para que a frase de senha sobreviva aos reinícios. No Linux, a maioria dos ambientes de desktop inicia o ssh-agent automaticamente — verifique com echo $SSH_AUTH_SOCK.
Você apertou Enter quatro vezes sem ler. O aviso da frase de senha é o que vale a pena retornar.
Instale nossas extensões
Adicione ferramentas de IO ao seu navegador favorito para acesso instantâneo e pesquisa mais rápida
恵 O placar chegou!
Placar é uma forma divertida de acompanhar seus jogos, todos os dados são armazenados em seu navegador. Mais recursos serão lançados em breve!
Ferramentas essenciais
Ver tudo Novas chegadas
Ver tudoAtualizar: Nosso ferramenta mais recente foi adicionado em 7 de junho de 2026
