Autenticação por senha SSH não interativa
Automatizar conexões SSH que exigem senha continua sendo controverso, com alguns engenheiros confiando felizmente em ferramentas como `sshpass`, enquanto outros argumentam que essas abordagens são frágeis porque dependem da interpretação de prompts e de um comportamento de TTY instável. Muitos participantes insistem que autenticação por chave pública ou certificada, Kerberos ou certificados SSH de curta duração são mais seguros e escaláveis, mas reconhecem que hardware de rede legado, configurações TACACS/RADIUS e restrições de fornecedores muitas vezes deixam o SSH apenas com senha como a única opção prática. A conversa se amplia para como gerenciar acesso privilegiado em escala — via automação de configuração, produtos PAM, bastions ou agentes personalizados — destacando as compensações entre segurança, complexidade e confiabilidade em infraestruturas do mundo real.
Abordagens de autenticação por senha SSH não interativa
- Muitos comentaristas argumentam que a autenticação por senha no SSH deve ser evitada; chaves/certificados são preferidos, e alguns desativam completamente os logins por senha.
- Outros observam que a autenticação por senha não interativa é inevitável com certos dispositivos de rede, BMCs, caixas de fornecedores, configurações TACACS+/RADIUS ou provisionamento inicial em que apenas senhas estão disponíveis.
- Alguns estão explorando a automação de SSH baseado em OTP/TOTP, mas receitas concretas e robustas não são detalhadas.
sshpass vs alternativas (passh, ASKPASS, expect)
- Várias pessoas dizem que sshpass é “bom o suficiente”, citando uso em grande escala (dezenas de milhares de máquinas) sem problemas e elogiando sua simplicidade.
- Críticos apontam que sshpass é frágil porque faz parsing dos prompts de senha; mudanças nos prompts ou no comportamento do TTY podem quebrá-lo.
- Um padrão alternativo é usar SSH_ASKPASS e SSH_ASKPASS_REQUIRE (em clientes OpenSSH mais novos) para injetar senhas de forma mais controlada, possivelmente tornando ferramentas extras mais simples ou desnecessárias.
- A ferramenta passh é citada como mais robusta no tratamento de TTY; a acusação de “quebrado por design” contra o sshpass vem desse projeto, não do autor do artigo.
- Ferramentas tradicionais como expect são mencionadas; elas são poderosas, mas podem ser frágeis, especialmente sob cron ou sem um TTY real.
Chaves, certificados e restrições do mundo real
- Os comentaristas reiteram que chaves/certificados são “o jeito certo”, mas descrevem obstáculos:
- Equipamentos de rede (por exemplo, algumas variantes Cisco/Juniper, dispositivos Ubiquiti) em que a configuração de chaves é desajeitada ou não persistente.
- Autenticação central via TACACS+/RADIUS muitas vezes projetada em torno de senhas, com suporte a chaves limitado ou ad hoc.
- Muitos stacks SSH embarcados não têm recursos modernos como FIDO2.
- Alguns sugerem certificados SSH, Kerberos ou FreeIPA, mas reconhecem a complexidade operacional e organizacional.
TTY, scripting e robustez
- Várias histórias sobre trabalhos em cron, sftp e ferramentas que se comportam de forma diferente sem um TTY de controle.
- As soluções incluem
script,screen,ssh -t, Paramiko e rsync em vez de sftp. - Há debate sobre se parsing de TTY e
/proce shell scripting são “triviais se você ler o manual” ou inerentemente cheios de armadilhas; o princípio da menor surpresa é levantado.
Acesso privilegiado e soluções de nível superior
- Alguns defendem sistemas de gerenciamento de acesso privilegiado, bastions, VPNs associadas ao usuário ou certificados SSH de curta duração (por exemplo, via Vault/Teleport) para evitar incorporar senhas de todo.
- Outros alertam que esses produtos podem, por si só, ser alvos de alto valor e frágeis, e que um bom design de IAM/PAM pode ser mais importante do que adicionar outra camada de proxy.