Да, это целый формат файла. Это не просто место, где вы прописываете ключи и забываете о них, вы можете накладывать всевозможные ограничения или варианты поведения определенных пользователей.
Файл 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
может привести к нежелательным результатам, поэтому всегда важно тщательно проверять и тестировать изменения перед их применением в рабочей среде.