Я ищу способ аутентификации пользователей с использованием открытого ключа, который хранится в базе данных (MongoDB). Подобные вопросы обычно приводили к предложению установить исправленную версию OpenSSH (https://github.com/wuputahllc/openssh-for-git), который аутентифицируется по базе данных (GitHub использует исправленную версию OpenSSH).
Я видел, что есть модуль PAM для аутентификации через MySQL, но он предполагает аутентификацию по имени пользователя и паролю. Мне было интересно, могу ли я использовать какой-то модуль PAM для аутентификации с использованием открытого ключа на сервере.
EDITED: мне это нужно для сервера git, где все пользователи будут подключаться через имя пользователя git. Для каждого пользователя не будет конкретного имени пользователя.
AuthorizedKeysCommand
это то, что вам нужно. Для этого потребуется прилично новая версия OpenSSH, и вы должны написать команду-оболочку, которая получает ключ из базы данных MongoDB, но не требует исправления OpenSSH.
И ссылку с более подробной информацией о AuthorizedKeysCommand.
Аутентификация с открытым ключом SSH не реализуется через PAM. Это на самом деле обходы ПАМ auth
стек (но только auth
), что упускают из виду многие администраторы.
Запрет версий, поддерживающих AuthorizedKeyCommand
(как упоминалось в ответе Флорина), единственный способ расширить аутентификацию открытого ключа SSH - это исправить либо демон (поиск открытого ключа), либо клиент (поиск закрытого ключа).
Существует множество способов расширить параметры аутентификации через PAM, но изменение того, как работает аутентификация с открытым ключом SSH, не входит в их число.