Настройка сервера OpenSSH
#
Васильев Андрей Михайлович, 2025
Версии презентации
Аутентификация пользователей
#
OpenSSH-сервер поддерживает множество вариантов по выполнению аутентификации:
- Аутентификация с помощью Kerberos
- Аутентификация по ключу хоста, расположенном на клиенте
- Аутентификация по нескольким текстовым факторам
- Аутентификация по паролю
- Аутентификация по ключу пользователя
Рассмотрим наиболее часто применяемые: по паролю и по ключу пользователя
Аутентификация по паролю
#
- Пароль надо вводить при каждом подключении
- Проверка пароля делегирована стандартной подсистеме аутентификации, PAM,
Pluggable Authentication Modules
- Возможности пользователя могут отличаться от тех, что доступны при локальном
входе
Аутентификация по ключу
#
- Обычно используются ключи по умолчанию, расположенные в каталоге
~/.ssh
- Пользователь при подключении может указать путь к любому ключу
- Ключ может быть защищён паролём, при его считывании будет запрошен пароль у
пользователя
Создание ssh-ключей
#
В протоколе SSH используется асимметричное шифрование, для которого применяется
пара из:
- Публичного ключа, с помощью которого можно расшифровать данные
- Приватного ключа, с помощью которого можно зашифровать данные (или наоборот)
Для создания ключей используется приложение ssh-keygen
:
Далее будут заданы вопросы о местоположении и пароля
- По умолчанию пара ключей создаются в каталоге
~/.ssh
- Пароль не является необходимостью, но его использование повышает безопасность
В результате работы команды будут созданы файлы:
~/.ssh/id_ed25519
— секретный ключ, который нельзя никому передавать
~/.ssh/id_ed25519.pub
— публичный ключ, который передаётся на сервер
Передача ключа на сервер
#
На сервере необходимо установить публичную часть ключа, чтобы выполнить
аутентификацию пользователя
Это делается путём копирования содержимого публичного ключа в список
авторизованных ключей. Обычно этот файл находится по пути
~/.ssh/authorized_keys
Файл можно передать путём копирования файла, использования текстового редактора
и буфера обмена или с помощю приложения ssh-copy-id
:
ssh-copy-id -i ~/.ssh/id_ed25519 user@192.168.122.9
Необходимо будет пройти настроенную аутентификацию (по паролю или другому ключу)
SSH-Агент
#
Ключи, защищённые паролём, безопаснее, но требуют постоянного ввода пароля
Ключи можно загрузить в специальную службу ssh-agent, введя пароль от ключа,
чтобы затем ssh-клиент считывал их из службы, а не с файловой системы
Для загрузки ключа в агент используется приложение ssh-add
:
- Можно передать список приватных файлов, которые необходимо открыть
- Если не передать список, то в агент будут добавлены все ключи из
~/.ssh
Для очистки списка открытых SSH-ключей необходимо запустить приложение с
аргументом -D
: ssh-add -D
Конфигурационный файл пользователя
#
Если необходимо выполнять подключения к разным системам с разнородными
параметрами, то их удобно единожды зафиксировать в конфигурационном файле
Рассмотрим пример файла ~/.ssh/config
:
Host playground
HostName 127.0.0.1
Port 2022
User user
IdentityFile ~/.ssh/playground-key
Тогда для подключения к данному серверу достаточно будет выполнить:
Вместо:
ssh -i ~/.ssh/playground-key -p 2022 user@127.0.0.1
Настройка сервера OpenSSH
#
Конфигурация сервера OpenSSH в ОС семейства Альт находится по пути
/etc/openssh/sshd_config
, а его описание находится в 5-м разделе руководства
Процесс редактирования сервера sshd надо выполнять аккуратно, т.к. некорректная
конфигурация потребует наличия альтернативного способа подключения к серверу,
что зачастую затруднено или дорого
Процесс редактирования:
- Сделайте резервную копию файла конфигурации
- Отредактируйте текущий файл конфигурации
- Проверьте техническую корректность файла
sshd -t
- Проверьте логическую корректность файла
- С помощью
systemctl reload sshd
перезагрузите конфигурационный файл
Ряд параметров сервера
#
Запрещает аутентификацию пользователя root, рекомендуемая настройка
Разрешает доступ только пользователю student, все другие пользователи не
смогут подключиться.
Разрешает доступ только пользователей, входящих в одну из групп wheel
или
ssh
Использование инструмента control
#
Альт предоставляет инструмент control
с помощью которого можно выполнять
настройку политик безопасности: разрешать или запрещать выполнять различные
операции
Данный инструмент позволяет настраивать следующие политики:
sshd-password-auth
— разрешить или запретить аутентификацию по паролю
sshd-allow-groups
— включить список групп, которым разрешён доступ
Например для отключения аутентификации по паролю:
- Нужно настроить политику:
control sshd-password-auth disabled
- Перезагрузить службу:
systemctl restart sshd