A Chave Pública do Usuário (User Public Key) é o componente do par de chaves que o administrador “instala” no servidor para permitir o acesso sem a necessidade de senhas tradicionais. No modelo de autenticação assimétrica do SSH, ela atua como um critério de reconhecimento: o servidor guarda esta chave para saber exatamente quais assinaturas digitais deve aceitar como legítimas para um determinado usuário.


1. O Repositório de Confiança (authorized_keys)

Diferente das chaves de host (que identificam a máquina), a chave pública do usuário é armazenada dentro do diretório pessoal do usuário no servidor, especificamente no caminho: ~/.ssh/authorized_keys

  • Formato de Linha Única: Cada chave pública ocupa exatamente uma linha no arquivo.

  • Múltiplas Chaves: Um único usuário pode ter várias chaves públicas cadastradas (ex: uma do seu notebook pessoal, outra do computador da empresa e uma de um servidor de automação).

  • Independência: O servidor não precisa da chave privada do usuário; ele precisa apenas da versão pública para realizar a validação matemática.


2. Mecanismo de Identificação

Quando o usuário tenta se conectar, o processo de identificação via chave pública segue uma lógica de “Fechadura e Chave”:

  1. Apresentação: O cliente SSH envia ao servidor o ID da chave pública que pretende usar.

  2. Busca: O servidor procura essa chave no arquivo authorized_keys do usuário solicitado.

  3. Desafio Criptográfico: Se encontrar a chave, o servidor gera um desafio que só pode ser resolvido por quem possui a Chave Privada correspondente.

  4. Verificação: O servidor usa a Chave Pública (que ele já tem guardada) para verificar se a resposta do cliente é matematicamente válida.


3. Vantagens da Identificação por Chave Pública

  • Imunidade a Interceptação: Como a chave pública é, por definição, pública, não há problema se um atacante a visualizar. O que importa é que ele não possui a chave privada para gerar a assinatura correta.

  • Revogação Seletiva: Se um desenvolvedor deixa a empresa, o administrador remove apenas a linha correspondente à chave pública dele no servidor. Isso corta o acesso instantaneamente sem afetar os outros usuários ou exigir a troca de senhas globais.

  • Automação Segura: É o método padrão para transferências de arquivos via SCP ou SFTP em scripts, pois permite o login automático sem expor credenciais em texto simples dentro do código.


4. Opções e Restrições de Chave (Options Field)

Uma característica avançada da chave pública no SSH é que ela pode ser prefixada com opções de restrição diretamente no arquivo authorized_keys. Isso permite limitar o que aquela chave específica pode fazer:

  • from="192.168.1.100": A chave só funciona se o usuário vier deste IP específico.

  • command="ls -l": Independentemente do que o usuário digitar, o servidor só executará este comando e encerrará a conexão.

  • no-port-forwarding: Impede que o usuário crie túneis através desta conexão.

5. Segurança do Arquivo de Chaves

Para que a identificação seja considerada válida, o servidor SSH impõe regras rígidas de permissão no diretório onde a chave pública reside:

  • A pasta ~/.ssh/ deve ter permissão 700 (apenas o dono lê/escreve).

  • O arquivo authorized_keys deve ter permissão 600 ou 644.

  • Se o arquivo tiver permissão de escrita para “outros” ou para o “grupo”, o servidor SSH ignorará a chave pública por segurança, assumindo que ela pode ter sido adulterada.