Настройка аутентификации по ключам для SSH

Red Hat Enterprise LinuxBeginner
Практиковаться сейчас

Введение

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

Генерация пары открытого и закрытого ключей

Первым делом необходимо создать криптографическую пару ключей. Она состоит из закрытого ключа (private key), который должен храниться в строгом секрете, и открытого ключа (public key), который размещается на сервере для разрешения доступа.

Задачи

  • Сгенерируйте новую пару ключей RSA, используя команду ssh-keygen.

Требования

  • Перед генерацией ключей переключитесь на учетную запись testuser.
  • Выполняйте генерацию именно от имени пользователя testuser.
  • Используйте путь к файлу по умолчанию, когда появится соответствующий запрос (/home/testuser/.ssh/id_rsa).
  • Не устанавливайте кодовую фразу (passphrase) для закрытого ключа (просто нажмите Enter при появлении запроса).

С чего начать

Сначала переключитесь на учетную запись пользователя testuser:

su - testuser
## Password: testuser123

Пример

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

$ ls -l ~/.ssh
total 8
-rw------- 1 testuser testuser 3401 Aug 19 03:49 id_rsa
-rw-r--r-- 1 testuser testuser  759 Aug 19 03:49 id_rsa.pub

Файл id_rsa — это ваш закрытый ключ, а id_rsa.pub — открытый.

✨ Проверить решение и практиковаться

Авторизация открытого ключа и настройка SSH-сервера

Теперь, когда у вас есть пара ключей, необходимо подготовить сервер. Это включает в себя два основных действия: добавление вашего открытого ключа в список доверенных и проверку того, что служба SSH настроена на прием подключений по ключам.

Предварительные условия

Убедитесь, что вы все еще работаете под учетной записью testuser. Если нет, переключитесь на нее:

su - testuser
## Password: testuser123

Задачи

  • Скопируйте содержимое открытого ключа в файл ~/.ssh/authorized_keys.
  • Установите правильные права доступа для файла ~/.ssh/authorized_keys.
  • Отредактируйте конфигурационный файл SSH-сервера (/etc/ssh/sshd_config), чтобы разрешить аутентификацию по открытым ключам.
  • Перезагрузите службу SSH для применения изменений.

Требования

  • Файл ~/.ssh/authorized_keys должен быть создан и содержать данные из вашего открытого ключа (~/.ssh/id_rsa.pub).
  • Права доступа для ~/.ssh/authorized_keys должны быть установлены на 600.
  • В файле /etc/ssh/sshd_config параметр PubkeyAuthentication должен быть раскомментирован и иметь значение yes.
  • Конфигурация SSH должна быть обновлена с помощью команды sudo pkill -HUP sshd.

Подсказки

  • Для добавления ключа в файл authorized_keys можно использовать команду cat с перенаправлением вывода (>>).
  • Для изменения прав доступа используйте команду chmod.
  • Пользователь testuser имеет права sudo для редактирования /etc/ssh/sshd_config и перезагрузки службы sshd.
  • Поскольку в данной контейнерной среде systemctl недоступен, используйте pkill для отправки сигнала HUP процессу sshd, что заставит его перечитать конфигурацию.

Пример

После выполнения этих шагов вы сможете войти на localhost по SSH-ключу без запроса пароля.

$ ssh testuser@localhost "echo Login successful"
Login successful
✨ Проверить решение и практиковаться

Резюме

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