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



