Gere um par de chaves SSH ou RSA sem instalar nada
Este gerador cria um novo par de chaves Ed25519, ECDSA (P-256, P-384, P-521) ou RSA (2048, 3072, 4096 bits) com a Web Crypto API do seu navegador e exporta do jeito que você precisa: uma chave privada OpenSSH e uma linha de <code>authorized_keys</code>, exatamente como o <code>ssh-keygen</code> produziria; arquivos PEM PKCS#8 e SPKI para OpenSSL, TLS e bibliotecas JWT; um JWK público; e a impressão digital <code>SHA256:</code>. As chaves são geradas no seu dispositivo e a chave privada nunca sai desta página.
Como gerar um par de chaves SSH
- 1Escolha o tipo de chave: Ed25519 é o padrão moderno para SSH; escolha RSA para servidores antigos e para chaves de assinatura PEM ou JWT.
- 2Se quiser, digite um comentário, geralmente
user@host, para reconhecer a chave depois noauthorized_keys. - 3Clique em Gerar. Baixe a chave privada como
id_ed25519(ouid_rsa,id_ecdsa) e a pública com o mesmo nome mais.pub. - 4Mova as duas para
~/.ssh/, executechmod 600 ~/.ssh/id_ed25519e adicione a linha da chave pública ao~/.ssh/authorized_keysdo servidor ou às configurações de chave SSH do seu serviço Git.
Qual tipo de chave devo escolher?
- Ed25519
- Pequena (uma chave pública de 68 caracteres), rápida e resistente a erros de implementação. Suportada pelo OpenSSH 6.5 e posteriores, GitHub, GitLab e todos os servidores atuais. A melhor escolha para SSH hoje.
- ECDSA (P-256, P-384, P-521)
- Curvas NIST, necessárias quando regras de conformidade exigem ou onde Ed25519 não é aceita, como em alguns tokens de hardware e serviços de chaves na nuvem.
- RSA
- A escolha mais compatível, incluindo servidores SSH muito antigos e muitas bibliotecas TLS e JWT (RS256). Use pelo menos 3072 bits para chaves que devem durar além de 2030; 2048 é o mínimo ainda considerado aceitável.
Os formatos explicados
- Chave privada OpenSSH
- <code>-----BEGIN OPENSSH PRIVATE KEY-----</code>, o formato que o <code>ssh-keygen</code> grava por padrão. Gerada aqui sem criptografia; adicione uma senha depois com <code>ssh-keygen -p -f id_ed25519</code>.
- Chave pública OpenSSH
- Uma linha, <code>ssh-ed25519 AAAA… comment</code>, para <code>authorized_keys</code>, GitHub, GitLab e consoles de nuvem.
- Chave privada PKCS#8 (PEM)
- <code>-----BEGIN PRIVATE KEY-----</code>, o contêiner padrão que OpenSSL, Java, Node.js, Go e a maioria das bibliotecas JWT leem para qualquer tipo de chave.
- Chave pública SPKI (PEM)
- <code>-----BEGIN PUBLIC KEY-----</code>, a forma X.509 SubjectPublicKeyInfo usada para verificar assinaturas e nas configurações de verificação de JWT.
- JWK
- A chave pública em JSON (RFC 7517), com um thumbprint <code>kid</code>, pronta para publicar em um endpoint JWKS.
Impressões digitais
A impressão digital é um hash SHA-256 da chave pública no formato wire do SSH, codificado em Base64 sem preenchimento: SHA256:…. É o que ssh-keygen -lf id_ed25519.pub imprime, o que o GitHub lista ao lado de cada chave e o que o SSH mostra quando pede para você confiar em um host novo. Comparar impressões digitais é como você confirma que duas cópias de uma chave pública são a mesma chave.
É seguro gerar chaves no navegador?
As chaves vêm do crypto.subtle.generateKey, a criptografia nativa do navegador, que usa o gerador seguro de números aleatórios do sistema operacional — a mesma fonte que o ssh-keygen usa. Nada é enviado pela rede: você pode carregar esta página, desconectar e gerar chaves offline.
Para chaves que protegem sistemas de produção, o lugar mais seguro para gerá-las ainda é a máquina que vai usá-las, com ssh-keygen -t ed25519, ou uma chave de hardware. Esta ferramenta é ideal para ambientes de teste, chaves de deploy de CI, chaves de assinatura JWT e máquinas sem OpenSSH. Para inspecionar um certificado baseado nesse tipo de chave, use o decodificador de certificados.
Perguntas frequentes
- Como gerar uma chave SSH online?
- Escolha Ed25519, digite um comentário como seu e-mail, clique em Gerar e baixe a chave privada (id_ed25519) e a pública (id_ed25519.pub). Coloque as duas em ~/.ssh e adicione a linha .pub ao servidor ou ao seu serviço Git.
- Ed25519 é melhor que RSA?
- Para SSH, sim: chaves Ed25519 são bem mais curtas, mais rápidas de usar e oferecem segurança comparável à RSA-3072. Escolha RSA só para sistemas que não suportam Ed25519.
- Por que Ed25519 não está disponível no meu navegador?
- Ed25519 chegou à Web Crypto API no Firefox 129, Safari 17 e Chrome 137. Em um navegador mais antigo, atualize-o ou escolha ECDSA ou RSA.
- Posso adicionar uma senha à chave privada?
- A chave é gerada sem senha. Adicione uma na sua própria máquina com ssh-keygen -p -f ~/.ssh/id_ed25519, que criptografa o arquivo no lugar.
- Como converter a chave para o formato .ppk do PuTTY?
- Abra o PuTTYgen, escolha Load, selecione a chave privada OpenSSH que você baixou e salve como chave privada. O PuTTYgen lê o formato OpenSSH diretamente.
- Qual arquivo vai no servidor?
- Só a chave pública, a única linha do arquivo .pub, adicionada ao ~/.ssh/authorized_keys. A chave privada fica no seu computador e nunca deve ser compartilhada.
- Por que o SSH diz que as permissões da minha chave privada estão abertas demais?
- O SSH recusa chaves privadas que outros usuários podem ler. Execute chmod 600 no arquivo da chave privada e chmod 700 no diretório ~/.ssh.
- As chaves são enviadas para um servidor?
- Não. Elas são geradas pela Web Crypto API do seu navegador nesta página e só existem na memória até você baixá-las ou copiá-las.