Я хочу иметь возможность блокировать или разрешать пользователям на основе результатов внешнего скрипта с использованием OpenSSH.Я вижу, что libssh
имеет поддержку обратных вызовов , но после прочтения справочных страниц OpenSSH я нигде не могу найти, чтобы эта функция была передана пользователю.
Например, я бы хотелчтобы иметь возможность поддерживать файл или даже API, содержащий черный или белый список имен пользователей, и заставить OpenSSH обращаться к этим спискам во время процесса аутентификации.
Идеи, которые у меня были до сих пор, и почему их недостаточно:
Используйте sshd_config
: AllowUsers
. Это начало, но, поскольку оно не читает файл, оно не является динамическим.Конфигурационный файл необходимо будет менять каждый раз, и служба будет перезапущена.Кроме того, изменение файла конфигурации из скрипта опасно и ужасно.
Используйте sshd_config
: AuthorizedKeysCommand
. К сожалению, хотя это позволяет вамчтобы указать сценарий и предоставить доступ на основе результата, он не допускает отказа в доступе.Если скрипт ничего не возвращает, sshd
продолжает пробовать другие методы аутентификации.
Перекомпилируйте OpenSSH с добавлением, которое реализует обратные вызовы libssh
.Я бы предпочел не делать этого по очевидным причинам ремонтопригодности.
Есть ли другой способ, который я пропустил при чтении документации?