Existe uma maneira de distinguir o humano durante o processo de login e, apesar de todos os 5 humanos usarem a mesma conta "raiz".
Claro que o módulo PAM tem seus limites neste momento.
Mas você deve dar uma olhada em privacyIDEA . Este projeto meu permite gerenciar qualquer tipo de tokens (também TOTP, HOTP Google Authenticator, token de hardware, yubikey ...) e atribuir esses tokens aos usuários.
Agora existem duas possibilidades:
A) Você pode atribuir vários tokens para a raiz do usuário. E você sabe qual token foi entregue a qual humano. No servidor, você instala um módulo pam privacyidea, que é autenticado no servidor privacyidea.
privacyidea determina qual token foi usado para autenticar como usuário root e registra isso no log de auditoria assinado digitalmente. Assim você pode deduzir, qual humano está logado.
B) Todo ser humano tem sua própria conta de usuário em privacyidea. Você atribui um token a cada conta de usuário e entrega esse token para o humano.
Agora você pode atribuir tokens "remotos" ao usuário root. Assim, o usuário root obtém algum tipo de tokens virtuais que se ligam aos tokens reais dos usuários humanos. Quando um usuário "root" autentica, você obtém as informações sobre o token virtual / remoto e o token do usuário do território no log de auditoria. Assim, você vê diretamente qual humano está logado como usuário root.
Contas compartilhadas é uma má ideia
Afirma-se que as contas compartilhadas são uma má ideia. Eu recomendaria esta afirmação. Evite contas compartilhadas! Mas às vezes pode ser muito difícil evitar contas compartilhadas.
Então a questão é: qual é a coisa ruim sobre contas compartilhadas? E se pudermos atenuar esse problema de contas compartilhadas, as contas compartilhadas podem não ser mais tão ruins assim.
Eu acho que uma grande coisa ruim sobre contas compartilhadas é que você não pode distinguir qual ser humano está logado e realizou as ações. Então, se você tem a possibilidade de diferenciar qual humano está logado como shared_user_A , então o problema pode não ser tão grande assim. Nesse caso, 2FA é uma boa possibilidade, porque você pode identificar qual fator de segunda posse foi usado para fazer login na conta compartilhada. E se você conseguir igualar o número de série do fator de posse ao humano, então você estará relativamente limpo novamente.
Em seu cenário de SSH, convém combinar chaves ssh (em chaves autorizadas) com o TOTP Google Authenticator compartilhado. Um humano precisa ter ambos, uma chave ssh exclusiva (pela qual você pode identificar o humano) e um TOTP compartilhado.