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”:
-
Apresentação: O cliente SSH envia ao servidor o ID da chave pública que pretende usar.
-
Busca: O servidor procura essa chave no arquivo
authorized_keysdo usuário solicitado. -
Desafio Criptográfico: Se encontrar a chave, o servidor gera um desafio que só pode ser resolvido por quem possui a Chave Privada correspondente.
-
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_keysdeve 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.