0Pricing
Cryptology Academy · Aula

Autenticação por Chave Pública e Encaminhamento de Agente

Compreenda authorized_keys, as chaves Ed25519 e RSA e as implicações de segurança do encaminhamento do agente SSH.

Autenticação por Chave Pública e Encaminhamento de Agente é uma aula grátis de Cryptology Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Cryptology Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Cryptology Academy inclui 4 aulas no total.

Formato do arquivo authorized_keys

A autenticação SSH por chave pública depende do arquivo authorized_keys, normalmente localizado em ~/.ssh/authorized_keys no servidor. Cada linha contém uma chave pública no formato: algorithm base64-key comment. O servidor verifica se o cliente consegue comprovar que possui a chave privada correspondente assinando um desafio.

Geração de chaves SSH com ssh-keygen

O comando ssh-keygen cria pares de chaves para autenticação. Executar ssh-keygen -t ed25519 gera um par de chaves Ed25519 moderno. Você pode especificar um comentário com -C para identificação, como seu endereço de e-mail. Por padrão, a ferramenta salva a chave privada (id_ed25519) e a chave pública (id_ed25519.pub) em ~/.ssh.

Comparação dos tipos de chave: RSA, ECDSA e Ed25519

As chaves RSA de 4096 bits são altamente compatíveis com sistemas legados, mas são mais lentas para assinar. A ECDSA em NIST P-256 é mais rápida e produz assinaturas menores, mas alguns criptógrafos questionam a seleção dos parâmetros das curvas NIST. A Ed25519 baseada em Curve25519 é a prática recomendada atualmente: chaves e assinaturas rápidas e pequenas, nenhuma vulnerabilidade conhecida e disponibilidade em todas as implementações modernas do SSH.

Chaves privadas protegidas por frase secreta

O arquivo da chave privada deve ser protegido com uma frase secreta. O ssh-keygen criptografa a chave privada usando uma chave derivada da frase secreta (bcrypt para chaves modernas), portanto um invasor que roube o arquivo não poderá usá-lo sem a frase secreta. Sem uma frase secreta, qualquer pessoa com acesso ao arquivo poderá se autenticar como você em qualquer servidor que mantenha a chave pública correspondente.

ssh-agent para gerenciamento de chaves

O processo ssh-agent mantém chaves privadas descriptografadas na memória durante uma sessão de login. Você carrega uma chave com ssh-add ~/.ssh/id_ed25519, que solicita a frase secreta uma única vez. Nas conexões SSH seguintes, o cliente solicita ao agente que assine os desafios sem que seja necessário digitar novamente a frase secreta, combinando segurança e praticidade.

Como o ssh-agent assina desafios

Quando um servidor SSH envia um desafio de autenticação, o cliente SSH delega a assinatura ao ssh-agent por meio de um soquete Unix. O agente realiza a assinatura criptográfica usando a chave privada armazenada na memória e retorna somente a assinatura. Os bytes da chave privada nunca deixam o processo do agente, nem mesmo para o próprio cliente SSH.

Encaminhamento do agente: recursos e riscos

O encaminhamento do agente (ForwardAgent yes ou ssh -A) permite que uma sessão SSH remota use seu agente local para autenticação em outros servidores. Isso é útil para passar por servidores bastião sem copiar chaves privadas para o bastião. No entanto, se o bastião for comprometido, um usuário root nele poderá acessar o soquete do seu agente e autenticar-se como você em qualquer servidor.

ProxyJump versus ForwardAgent para servidores bastião

ProxyJump (ssh -J bastion target) é a alternativa mais segura ao ForwardAgent para acessar um servidor bastião. Ele cria um túnel TCP através do bastião sem expor ali o soquete do seu agente. O servidor de destino recebe uma conexão direta do seu cliente local, e o bastião apenas encaminha bytes TCP criptografados, sem possibilidade de usar suas credenciais.

Autenticação por certificados SSH

O SSH oferece autenticação baseada em certificados, na qual uma Autoridade certificadora (CA) assina chaves públicas de servidores e usuários. Em vez de distribuir chaves públicas individuais para cada servidor, você configura os servidores para confiar na sua CA. Um certificado de usuário assinado concede acesso a todos os servidores que confiam nessa CA, com validade opcional e restrições de identidade incorporadas ao certificado.

ssh-keyscan para coleta de chaves em massa

A ferramenta ssh-keyscan conecta-se a um ou mais servidores e recupera suas chaves públicas de servidor sem autenticação. Isso é útil para automatizar o preenchimento de arquivos known_hosts em scripts de implantação. A saída pode ser encaminhada diretamente para um arquivo known_hosts: ssh-keyscan -H example.com >> ~/.ssh/known_hosts.

Resumo do fluxo de autenticação por chave

Autenticação por chave pública: o cliente envia a chave pública, o servidor verifica authorized_keys, o servidor envia um desafio assinado com o identificador da sessão, o cliente, por meio do agente, assina o desafio com a chave privada e o servidor verifica a assinatura usando a chave pública armazenada. Se for válida, a autenticação é concluída sem transmitir nenhuma credencial secreta.

Seleção do tipo de chave SSH

Qual tipo de chave SSH é a prática recomendada atualmente para novas implantações devido à sua velocidade, ao tamanho reduzido da chave e às fortes propriedades de segurança?

Recapitulação da autenticação por chave pública

Principais pontos: armazene as chaves públicas em authorized_keys, proteja as chaves privadas com frases secretas, use ssh-agent para manter as chaves descriptografadas na memória, prefira o tipo de chave Ed25519, use ProxyJump em vez de ForwardAgent para acessar servidores bastião e evitar expor o soquete do agente e considere certificados SSH para um gerenciamento de acesso escalável.

Perguntas Frequentes

A aula “Autenticação por Chave Pública e Encaminhamento de Agente” é grátis?

Sim — o texto completo de “Autenticação por Chave Pública e Encaminhamento de Agente” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Cryptology Academy, atualize para CoddyKit PRO. O curso de Cryptology Academy inclui 4 aulas no total.

O que vou aprender em “Autenticação por Chave Pública e Encaminhamento de Agente”?

Compreenda authorized_keys, as chaves Ed25519 e RSA e as implicações de segurança do encaminhamento do agente SSH. Você pratica Cryptology Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Cryptology Academy?

Nenhuma experiência prévia é necessária. Cryptology Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “Autenticação por Chave Pública e Encaminhamento de Agente”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Cryptology Academy?

Sim. Cada aula de Cryptology Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Handshake do SSH e Autenticação por Chave do Host
  2. Autenticação por Chave Pública e Encaminhamento de Agente
  3. Tunelamento SSH e Técnicas de Encaminhamento de Portas
  4. Fortalecimento do SSH e Boas Práticas de Auditoria
← Voltar para Cryptology Academy