Как настроить 2FA для неинтерактивных SSH-подключений?

Как настроить 2FA для неинтерактивных SSH-подключений?

Я хотел бы добавить уровень безопасности для входа на SSH-сервер (Ubuntu), используя двухфакторную аутентификацию. Одна из особенностей того, как пользователи подключаются к SSH-серверу, заключается в том, что иногда они делают это неинтерактивным способом: SSH-сервер настроен в клиенте MySQL пользователя для использования в качестве бастиона/прокси для доступа к базе данных. Как следствие, я ищу настройки 2FA, которые не требуют от пользователя ввода чего-либо в терминале.

Одно из существующих решений, которое в теории звучит многообещающе, — это телефонный запрос Google, позволяющий пользователю подтвердить соединение. Каждый пользователь SSH будет связан с номером телефона, и этот номер телефона будет получать запрос на проверку при каждом подключении. введите описание изображения здесь

Очевидный недостаток этой идеи в том, что это звучит так, будто это потребует разработки приложения для телефона, что сделает его слишком сложным и дорогим. Есть ли другие методы, которые я мог бы использовать, чтобы позволить пользователям проверять неинтерактивные входы SSH?

решение1

Вы можете использовать SSH-CA для выпуска временных краткосрочных сертификатов пользователя OpenSSH, действительных только в течение пары часов. Пользователь должен запросить сертификат, пройдя аутентификацию с помощью любого решения MFA, которое вы предпочитаете. Сертификат SSH и закрытый ключ будут загружены в агент ключей SSH и могут использоваться до истечения срока действия сертификата пользователя.

Существуют различные реализации SSH-CA, на мой взгляд.ЕККАбудучи одним из них. YMMV.

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