Формат файла authorized_keys

Формат файла authorized_keys

Да, это целый формат файла. Это не просто место, где вы прописываете ключи и забываете о них, вы можете накладывать всевозможные ограничения или варианты поведения определенных пользователей.

Файл authorized_keys - это ключевой элемент в системах Linux и Unix, который используется для аутентификации по SSH без пароля. Каждая строка содержит один публичный SSH-ключ пользователя. Обычно каждый ключ находится на отдельной строке.

Мы рассмотрим лишь несколько параметров, которые особенно интересны. Всю документацию вы можете найти на страницах руководства man sshd.

Отключить перенаправление портов

Параметр no-port-forwarding предотвращает возможность перенаправления портов.

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

Пример использования:

no-port-forwarding ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA...

Настроить переменные окружения

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

Пример использования:

environment="GIT_AUTHOR_EMAIL=user@example.com" ssh-rsa AAAAB3NzaC1y...

Ограничение по IP

Параметр from в файле authorized_keys позволяет ограничить доступ к SSH-серверу для конкретного ключа, указывая, с каких IP-адресов или доменных имен разрешено подключение.

Принимает список IP-адресов, диапазонов IP или имен хостов, разделенных запятыми.

Пример использования:

from="192.168.1.*,*.example.com" ssh-rsa AAAAB3NzaC1yc2E...

Учтите, что при указании доменных имен вместо IP-адресов SSH-сервер будет резолвить эти имена в момент подключения. Это может добавить небольшую задержку и зависит от корректности настроек DNS.

Строк действия ключа

Параметр expiry-time является относительно новым дополнением, которое позволяет задавать срок действия для конкретных SSH-ключей. Будет полезно для временного предоставления доступа к серверу, например, для внешних разработчиков, подрядчиков или для автоматических процессов, требующих доступа на ограниченный период времени. После истечения указанного времени ключ автоматически становится недействительным.

Формат даты: YYYYMMDDHHMMSS представляет собой точную дату и время истечения срока действия ключа.

Пример использования:

expiry-time=20250101000000 ssh-rsa AAAAB3Nza...

Время истечения срока действия задается в UTC, что следует учитывать при настройке, особенно если сервер и пользователи находятся в разных временных зонах.

Заключение

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

Обновлено Jun 19, 2024 18:06 MSK
Копирование материалов сайта возможно только с указанием ссылки на первоисточник.