И так сервак OpenLDAP.
На него добавлена схема
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 )
)
ldapadd -Y EXTERNAL -H ldapi:/// -f openssh-lpk.ldif
на юзера добавлен ключ.
На клиенте:
/etc/ldap.conf
---
base dc=test
uri ldap://ldap.test
ldap_version 3
rootbinddn cn=admin,dc=test
pam_password md5
###
/etc/nsswitch.conf
----
passwd: ldap compat
group: ldap compat
shadow: ldap compat
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
####
/etc/pam.d/common-session
-------
session [default=1] pam_permit.so
session requisite pam_deny.so
session required pam_permit.so
session optional pam_umask.so
session required pam_unix.so
session optional pam_ldap.so
session optional pam_systemd.so
session required pam_mkhomedir.so skel=/etc/skel umask=0022
И дальше самое интересное для того что бы при авторизации клиент брал данные о ключе я довил скрипт с ldapsearch который тянет из базы ключ и в sshd добавил его вызов.
НО! В это случае с авторизацие по ключу абсолютно игнорятся все лимиты в /etc/security/access.conf
Вопрос:
Как сделать так что бы и авторизация по ключу работала и лимитировать по группам вход можно было.