No sistema de criptografia assimétrica utilizado pelo SSH, a Public Key (Chave Pública) é o componente do par de chaves destinado a ser distribuído e armazenado nos sistemas remotos. Tecnicamente, ela funciona como uma “fechadura digital” ou um “selo de verificação”: qualquer entidade que possua a sua chave pública pode verificar uma assinatura digital criada pela sua chave privada correspondente, mas ninguém pode usar a chave pública para fingir ser você.

1. Natureza e Composição Técnica

Uma chave pública SSH não é um segredo. Ela é uma string de texto codificada (geralmente em Base64) que contém informações matemáticas específicas sobre o algoritmo utilizado.

  • Identificador de Algoritmo: Indica se a chave é ssh-rsa, ecdsa-sha2-nistp256 ou ssh-ed25519.
  • O Expoente e o Módulo (No caso do RSA): Valores numéricos derivados de números primos gigantescos que permitem a operação matemática de verificação.
  • Comentário: Um rótulo opcional ao final (ex: usuario@notebook-pessoal) para ajudar o administrador a identificar a quem pertence a chave.

2. O Papel na Autenticação (A “Fechadura”)

O armazenamento da chave pública no servidor (no arquivo ~/.ssh/authorized_keys) é o que permite o login sem senha. O processo técnico segue a lógica do Desafio-Resposta:

  1. O servidor recebe um pedido de conexão e localiza a Public Key do usuário.
  2. O servidor “desafia” o cliente a provar que possui a chave privada associada a essa chave pública.
  3. O servidor usa a chave pública para validar a assinatura enviada pelo cliente. Se a assinatura for matematicamente consistente com a chave pública armazenada, o servidor tem a certeza de que o cliente é legítimo.

3. Distribuição e Segurança

Diferente da chave privada, a perda ou exposição da Public Key não compromete a sua conta por si só.

  • Disseminação: Você pode enviar sua chave pública por e-mail, colá-la em chats ou publicá-la no seu perfil do GitHub.
  • Integridade no Servidor: O único risco real é se um atacante conseguir substituir a sua chave pública no servidor pela dele. Por isso, o arquivo authorized_keys deve ter permissões rígidas (600 ou 644) e pertencer apenas ao usuário dono da conta.

4. Formatos e Padrões

Existem diferentes formatos de representação para chaves públicas:

  • OpenSSH (RFC 4253): O formato mais comum, onde a chave ocupa uma única linha começando com o tipo do algoritmo.
  • PKCS#8 / PEM: Formatos mais genéricos usados por outros sistemas criptográficos (como SSL/TLS), geralmente delimitados por -----BEGIN PUBLIC KEY-----.

5. Revogação e Gestão

Gerenciar chaves públicas é uma tarefa crítica de administração:

  • Rodízio de Chaves: É uma boa prática trocar as chaves públicas periodicamente.
  • Revogação: Para impedir o acesso de um funcionário que saiu da empresa, basta remover a Public Key dele do arquivo authorized_keys de todos os servidores. O acesso é cortado instantaneamente, pois o servidor não terá mais a “fechadura” para validar as assinaturas do ex-funcionário.

6. Exemplo de uma Chave Pública (Ed25519)

ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMpjSpxGZ5Q9p... usuario@host

Neste exemplo, ssh-ed25519 identifica o algoritmo moderno e seguro, seguido pela massa de dados que compõe a chave propriamente dita.