Требуется как аутентификация LDAP, так и аутентификация ssh

Требуется как аутентификация LDAP, так и аутентификация ssh

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

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

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

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

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

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

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

https://serverfault.com/questions/579341/комбинация-ssh-key-auth-и-двухфакторной-аутентификации

решение1

Прежде всего, авторизованные ключи не должны храниться в домашнем каталоге пользователя по двум причинам:

  1. Пользователям не должно быть разрешено самостоятельно добавлять случайные авторизованные ключи.
  2. При первом входе в систему, если домашний каталог еще не существует, авторизованный ключ уже должен быть там.

Вам лучше установитьАвторизованныйКлючФайлкак это, чтобы позволитьsshdсчитайте авторизованные ключи из заблокированного каталога, куда вы помещаете ключи, с помощью вспомогательного скрипта синхронизации:

AuthorizedKeysFile /etc/ssh/authorized_keys/%u

Вариантом этого является использованиеAuthorizedKeysCommandдля запуска некоторого динамического извлечения авторизованных ключей. Имейте в виду, что сеть может быть недоступна или система может быть недоступна прямо в то время, когда вам нужно войти в систему.

В случае ухода сотрудника вам также следует забрать авторизованные ключи.

Если вы все же хотите принудительно использовать аутентификацию на основе ключей и паролей, вы можете установитьМетоды аутентификациитак:

AuthenticationMethods publickey,password

Обратите внимание, что в качестве разделителя используется запятая, а не пробел.

(Если вы не хотите разбираться со всеми деталями самостоятельно, вы можете настроить готовое решение, напримерFreeIPAссссдкак клиент NSS/PAM или мойÆ-DIRсaehostdиспользуется как клиент NSS/PAM.)

Связанный контент