Atualizar o LDAP para incluir o esquema OpenSSH-LPK
Primeiramente, precisamos atualizar o LDAP com um esquema para adicionar o atributo sshPublicKey
aos usuários:
dn: cn=openssh-lpk,cn=schema,cn=config
objectClass: olcSchemaConfig
cn: openssh-lpk
olcAttributeTypes: ( 1.3.6.1.4.1.24552.500.1.1.1.13 NAME 'sshPublicKey'
DESC 'MANDATORY: OpenSSH Public key'
EQUALITY octetStringMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )
olcObjectClasses: ( 1.3.6.1.4.1.24552.500.1.1.2.0 NAME 'ldapPublicKey' SUP top AUXILIARY
DESC 'MANDATORY: OpenSSH LPK objectclass'
MAY ( sshPublicKey $ uid )
)
Crie um script que consulte o LDAP para a chave pública de um usuário:
O script deve gerar as chaves públicas para esse usuário, por exemplo:
ldapsearch '(&(objectClass=posixAccount)(uid='"$1"'))' 'sshPublicKey' | sed -n '/^ /{H;d};/sshPublicKey:/x;$g;s/\n *//g;s/sshPublicKey: //gp'
Atualize sshd_config
para apontar para o script da etapa anterior
-
AuthorizedKeysCommand /path/to/script
-
AuthorizedKeysCommandUser nobody
Bônus : atualize sshd_config
para permitir a autenticação de senha de redes RFC1918 internas, como visto nesta pergunta:
Permitir somente a autenticação de senha para o servidor SSH a partir de interna rede
Links úteis:
EDIT: Adicionado usuário nobody
como sugerido TRS-80