Аутентификация OpenSSH и PAM с использованием открытого ключа

Я ищу способ аутентификации пользователей с помощью открытого ключа, который хранится в БД (MongoDB). Подобные вопросы обычно возникали в связи с предложением установить пропатченную версию OpenSSH ( https://github.com/wuputahllc/openssh-for-git), которая выполняет аутентификацию по базе данных (GitHub использует пропатченную версию OpenSSH).

Я видел, что есть модуль PAM для аутентификации через MySQL, но он предполагает аутентификацию по имени пользователя и паролю. Мне было интересно, могу ли я использовать какой-либо модуль PAM для аутентификации с использованием открытого ключа на сервере.

Отредактировано: мне это нужно для сервера git, где все пользователи будут подключаться через имя пользователя 'git'. Там не будет никакого конкретного имени пользователя для пользователя.

2 ответа

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

И ссылка с более подробной информацией об AuthorizedKeysCommand.

Аутентификация с открытым ключом SSH не реализована через PAM. Это на самом деле обходит PAM auth стек (но только auth), что упускают из виду многие администраторы.

Запрещающие версии, которые поддерживают AuthorizedKeyCommand (как уже упоминалось в ответе Флорина), единственный способ продлить аутентификацию открытого ключа SSH - это установить исправление либо у демона (поиск по открытому ключу), либо у клиента (поиск по закрытому ключу).

Существует множество способов расширить параметры аутентификации через PAM, но изменение работы аутентификации с открытым ключом SSH не является одним из них.

Другие вопросы по тегам