Я хотел бы добавить уровень безопасности для входа на SSH-сервер (Ubuntu), используя двухфакторную аутентификацию. Одна из особенностей того, как пользователи подключаются к SSH-серверу, заключается в том, что иногда они делают это неинтерактивным способом: SSH-сервер настроен в клиенте MySQL пользователя для использования в качестве бастиона/прокси для доступа к базе данных. Как следствие, я ищу настройки 2FA, которые не требуют от пользователя ввода чего-либо в терминале.
Одно из существующих решений, которое в теории звучит многообещающе, — это телефонный запрос Google, позволяющий пользователю подтвердить соединение. Каждый пользователь SSH будет связан с номером телефона, и этот номер телефона будет получать запрос на проверку при каждом подключении.
Очевидный недостаток этой идеи в том, что это звучит так, будто это потребует разработки приложения для телефона, что сделает его слишком сложным и дорогим. Есть ли другие методы, которые я мог бы использовать, чтобы позволить пользователям проверять неинтерактивные входы SSH?
решение1
Вы можете использовать SSH-CA для выпуска временных краткосрочных сертификатов пользователя OpenSSH, действительных только в течение пары часов. Пользователь должен запросить сертификат, пройдя аутентификацию с помощью любого решения MFA, которое вы предпочитаете. Сертификат SSH и закрытый ключ будут загружены в агент ключей SSH и могут использоваться до истечения срока действия сертификата пользователя.
Существуют различные реализации SSH-CA, на мой взгляд.ЕККАбудучи одним из них. YMMV.