O caminho do login privilegiado#
Habilitar o login de root via senha é frequentemente desencorajado em ambientes de produção expostos à internet, mas em arquiteturas de gerenciamento out-of-band, redes isoladas de manutenção ou durante processos de bootstrapping de infraestrutura, entender o fluxo de execução é vital para o troubleshooting de baixo nível.
1. A configuração de superfície: sshd_config#
Para permitir o login de root com senha, altera-se o arquivo /etc/ssh/sshd_config. Os parâmetros críticos são:
# Permite explicitamente que o UID 0 autentique
PermitRootLogin yes
# Habilita o subsistema de autenticação por senha (interação keyboard-interactive)
PasswordAuthentication yes
O "porquê" por trás dos comandos:#
O valor padrão do OpenSSH moderno é prohibit-password. Quando definido assim, o daemon permite que o root logue apenas via chaves públicas. Se você tentar enviar uma senha, o sshd simplesmente interrompe o fluxo de desafio de senha para o UID 0, mesmo que a senha fornecida esteja correta no /etc/shadow.
Comportamento esperado: Ao executar systemctl reload sshd, o processo pai (listener) recebe um sinal SIGHUP, relê o arquivo de configuração e atualiza sua estrutura de dados interna (ServerOptions).
3. A camada PAM (pluggable authentication modules)#
Mesmo com o sshd_config configurado para yes, a autenticação pode ser negada pela stack PAM do sistema operacional.
Arquivo Crítico: /etc/pam.d/sshd
O papel do pam_unix.so e pam_rootok.so#
O sshd chama a função pam_authenticate(). Se o seu sistema tiver a flag nullok desabilitada ou se houver restrições no arquivo /etc/securetty, o PAM pode bloquear o login.
- Rastreio de Erro: Se você vir
PAM: Authentication failurenos logs, o erro não está nosshd, mas sim na biblioteca de autenticação do Linux tentando validar o hash contra o/etc/shadow.
5. Cenários de borda (edge cases)#
Cenário a: o bloqueio por "match block"#
No final do sshd_config, pode haver um bloco Match.
Match Address 192.168.1.0/24
PermitRootLogin no
Como descartar: Use sshd -T | grep -i permitrootlogin. Este comando imprime a configuração efetiva que o servidor está usando após processar todos os blocos Match.
Cenário b: SELinux ou AppArmor#
Em distribuições como RHEL ou Debian com AppArmor, o contexto do arquivo /etc/ssh/sshd_config ou do binário /usr/sbin/sshd pode impedir a execução de certas ações.
- Comando de Verificação:
ausearch -m avc -ts recentoudmesg | grep -i "apparmor". - Descarte: Tente colocar o SELinux em modo permissivo temporariamente (
setenforce 0) para validar se o bloqueio persiste.
Cenário c: conta de root "locked"#
Se o campo de senha no /etc/shadow começar com ! ou *, o PAM rejeitará a senha independentemente do que o SSH diga.
- Como descartar: Verifique com
passwd -S root. Se aparecerL(Locked), executepasswd -u root.
Este artigo foi útil?
Deixe uma reação rápida para apoiar o conteúdo:
Este post está licenciado sob CC BY-NC.



Comentários
Participe da discussão abaixo.
0 comentários