Требовать как аутентификацию LDAP *, так и * аутентификацию ssh

Я хотел бы включить следующее: Экземпляры Linux ec2 в AWS, которые выполняют аутентификацию LDAP для пользователей, у которых в настоящий момент нет домашнего каталога. У меня есть рабочий openLDAP в AWS для задачи

После аутентификации LDAP:

  • Будет создан домашний каталог пользователя
  • Открытый ключ ssh пользователя извлекается из его атрибута sshPublicKey в LDAP и они могут войти в систему только в том случае, если их локальный sshPrivateKey соответствует

. Я знаю, как выполнить аутентификацию LDAP ИЛИ получение открытого ключа через ldapsearch , но я хочу сделать и то, и другое.

Сценарий, который я пытаюсь смягчить, - это когда сотрудник покидает компанию: я могу просто отключить его учетную запись в openLDAP, и даже если их открытый ключ существует на машинах, они не смогут их использовать, потому что они также не смогут выполнить ldap auth .

Я поискал на StackExchanges и не думаю, что нашел то, что ищу. Самое близкое, что я пришел, - это

аутентификация ключа SSH с использованием LDAP

Комбинация аутентификации ключа SSH и двухфакторной аутентификации

0
задан 29 March 2019 в 16:24
1 ответ

Аутентификация

Начиная с OpenSSH 6.2, в sshd_config (5) есть AuthorizedKeysCommand и AuthorizedKeysCommandUser . Это необходимо для аутентификации пользователя по его / ее sshPublicKey , который хранится в LDAP. Вам даже не нужен ldapsearch для получения sshPublicKey - curl тоже может это сделать, поскольку он знает протокол ldap.

Когда AuthorizedKeysCommand определено, но команда не возвращает открытый ключ, openssh сервер продолжает работу с AuthorizedKeysFile , а затем с PasswordAuthentication .

На AWS EC2 проверка пароля отключена, поэтому, если вы действительно этого хотите, вам необходимо включить ее в config. Но сегодня я бы не рекомендовал PasswordAuthentication.

Небольшое резюме: вам нужны эти параметры в / etc / ssh / sshd_config: AuthorizedKeysFile , AuthorizedKeysCommand , AuthorizedKeysCommandUser и PasswordAuthentication .

Отключение пользователя

Как упоминалось в обсуждении под вопросом: вы можете использовать атрибут ldap loginShell и изменить его значение на / bin / false или / usr / sbin / nologin или используйте другой атрибут и добавьте его в поисковый запрос. Это зависит от ваших настроек.

Каковы ваши настройки? nslcd (nss-pam-ldapd) , nss-pam-ldap , sssd или что-то еще?

0
ответ дан 24 November 2019 в 00:26

Теги

Похожие вопросы