Exigir autenticação LDAP *e* autenticação ssh

Exigir autenticação LDAP *e* autenticação ssh

Gostaria de habilitar o seguinte: Instâncias Linux ec2 na AWS que executam autenticação LDAP de usuários que não possuem nenhum diretório inicial atualmente na caixa. Eu tenho um openLDAP funcionando na AWS para a tarefa

Depois de autenticado pelo LDAP:

  • O diretório inicial do usuário será criado
  • A chave ssh pública do usuário é recuperada de seu sshPublicKeyatributo no LDAP e ele só poderá fazer logon se o sshPrivateKey local corresponder

Eu sei como fazer autenticação LDAPOUrecuperação da chave pública por meio de um, ldapsearchmas quero fazer as duas coisas.

O cenário que estou tentando mitigar é quando um funcionário sai da empresa: posso simplesmente desabilitar sua conta no openLDAP e mesmo que sua chave pública exista nas máquinas, eles não poderão usá-la porque também falharão na autenticação ldap .

Procurei no StackExchanges e acho que não encontrei o que procuro. O mais perto que cheguei foi

https://serverfault.com/questions/653792/ssh-key-authentication-using-ldap

https://serverfault.com/questions/579341/combination-of-ssh-key-auth-and-two-factor-authentication

Responder1

Em primeiro lugar, as chaves autorizadas não devem ser armazenadas no diretório inicial do usuário por dois motivos:

  1. Os próprios usuários não devem ter permissão para adicionar chaves autorizadas aleatórias.
  2. Durante o primeiro login, se o diretório inicial ainda não existir, a chave autorizada já deverá estar lá.

Você deveria definirArquivo de Chaves Autorizadasassim para deixarsshdleia as chaves autorizadas de um diretório bloqueado onde você coloca as chaves por meio de um script de sincronização auxiliar:

AuthorizedKeysFile /etc/ssh/authorized_keys/%u

Uma variante disso é usarComando de Chaves Autorizadaspara acionar alguma recuperação dinâmica de chaves autorizadas. Lembre-se de que a rede pode estar inativa ou o sistema inacessível no momento em que você faz o login.

Caso o funcionário saia você também retira as chaves autorizadas.

Se você ainda quiser impor o uso de autenticação baseada em chave e senha, você pode definirMétodos de autenticaçãoassim:

AuthenticationMethods publickey,password

Observe a vírgula usada como separador em vez de espaço.

(Se você não quiser lidar com todos os detalhes sozinho, você pode configurar uma solução pronta para uso, comoIPA grátiscomssdcomo cliente NSS/PAM ou meuÆ-DIRcomaehostdusado como cliente NSS/PAM.)

informação relacionada