A Identificação do Usuário é a fase final do processo de autenticação do SSH. Ela ocorre dentro do túnel criptografado estabelecido nas fases anteriores, garantindo que as credenciais nunca vazem.
1. O Protocolo de Autenticação (RFC 4252)
O SSH suporta vários métodos de autenticação. O servidor pode exigir um ou mais métodos simultâneos (MFA).
A. Autenticação por Senha (Password)
- O cliente envia o nome de usuário e a senha.
- O servidor valida a senha no sistema de arquivos local (ex:
/etc/shadow) ou via PAM (Pluggable Authentication Modules). - Risco: Vulnerável a ataques de força bruta se a senha for fraca.
B. Autenticação por Chave Pública (Public Key)
- É o método mais seguro e recomendado.
- O servidor possui a Chave Pública do usuário (armazenada em
~/.ssh/authorized_keys). - O cliente possui a Chave Privada correspondente.
- Processo: O servidor envia um “Desafio” (um valor aleatório) para o cliente. O cliente assina esse desafio com sua chave privada e devolve ao servidor. O servidor usa a chave pública para verificar a assinatura e permitir o acesso.
- Vantagem: A chave privada nunca é enviada pelo túnel.
2. Outros Métodos de Autenticação
- Keyboard-Interactive: Uma variação do método de senha que permite que o servidor faça perguntas dinâmicas ao usuário (como um desafio de Segundo Fator - SMS, TOTP, etc.).
- GSSAPI (Kerberos): Usado em ambientes corporativos Windows/Active Directory para login único (Single Sign-On).
- Host-based: Autenticação baseada no IP e no nome do computador do cliente (hoje descontinuada por ser insegura).
3. Melhores Práticas de Cyber
Para garantir que a identificação do usuário seja robusta:
1. Desabilite senhas: Forçar o uso exclusivo de chaves públicas.
2. Use MFA (Multi-Factor Authentication): Exigir, além da chave pública, um código de seis dígitos (Google Authenticator) ou uma chave física (Yubikey).
3. Proteja a Chave Privada: Sempre use uma senha forte (passphrase) para proteger o arquivo da chave privada no seu computador local.
4. Use Algoritmos Fortes: Prefira chaves do tipo Ed25519 em vez do antigo RSA.
- Ex: ssh-keygen -t ed25519 -a 100 (o parâmetro -a 100 aumenta a dificuldade de um ataque de força bruta contra a passphrase da chave).