Como posso configurar 2FA em conexões SSH não interativas?

Como posso configurar 2FA em conexões SSH não interativas?

Gostaria de adicionar um nível de segurança para logins em um servidor SSH (Ubuntu), usando autenticação de dois fatores. Uma particularidade de como os usuários se conectam ao servidor SSH é que às vezes eles fazem isso de forma não interativa: o servidor SSH é configurado no cliente MySQL dos usuários para ser usado como bastião/proxy para acessar um banco de dados. Como consequência, estou procurando configurações 2FA que não exijam que o usuário digite nada em um terminal.

Uma solução existente que parece promissora em teoria é o prompt do telefone do Google, que permite ao usuário validar a conexão. Cada usuário SSH seria associado a um número de telefone e esse número de telefone receberia um prompt para validação em cada conexão. insira a descrição da imagem aqui

Uma desvantagem óbvia dessa ideia é que parece que exigiria o desenvolvimento de um aplicativo de telefone, o que a tornaria muito complicada e cara. Existem outras técnicas que eu poderia usar para permitir que os usuários validem logins SSH não interativos?

Responder1

Você pode usar um SSH-CA para emitir certificados de usuário OpenSSH temporários de curto prazo, válidos apenas por algumas horas. O usuário deve solicitar o certificado autenticando-se com qualquer solução MFA de sua preferência. O certificado SSH e a chave privada serão carregados no agente de chave SSH e poderão ser usados ​​até que o certificado do usuário expire.

Existem várias implementações de SSH-CA por aí com meuEKCAsendo um deles. YMMV.

informação relacionada