Поиск по сайту:

Как настроить беспарольную аутентификацию SSH в RHEL 9


Сокращенно от Secure Shell, SSH – это безопасный сетевой протокол, который шифрует трафик между двумя конечными точками. Он позволяет пользователям безопасно подключаться и/или передавать файлы по сети.

SSH в основном используется сетевыми и системными администраторами для безопасного доступа и управления удаленными ресурсами, такими как серверы и сетевые устройства, по сети. Он использует надежные методы шифрования, такие как AES, и алгоритмы хеширования, такие как SHA-2 и ECDSA, для шифрования трафика, которым обмениваются клиент и удаленная система.

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

Имея это в виду, мы покажем, как настроить аутентификацию на основе ключей SSH в RHEL 9.

Настройка лаборатории тестирования

Вот как выглядит наша установка

  • Система Linux/UNIX (на базе Ubuntu или RHEL), в которой мы будем генерировать пару ключей. Для этого руководства я использую дистрибутив Ubuntu.
  • Экземпляр RHEL 9 (это облако может быть локальным или облачным VPS).

Шаг 1. Создайте пару ключей SSH ECDSA.

Получите доступ к своей системе Linux и сгенерируйте пару ключей SSH следующим образом. В этом руководстве мы сгенерируем пару ключей с использованием алгоритма ECDSA, который обеспечивает лучшее шифрование и безопасность.

Поэтому, чтобы сгенерировать пару ключей ECDSA, выполните команду:

ssh-keygen -t ecdsa

Команда проведет вас через ряд подсказок.

По умолчанию пара ключей сохраняется в домашнем каталоге пользователя внутри каталога ~/.ssh. Вы можете принять это место в качестве места назначения пары ключей SSH, нажав ENTER на клавиатуре, в противном случае вы можете указать предпочтительный путь. В этом руководстве мы решили использовать путь по умолчанию.

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

Однако если вы планируете автоматизировать процессы с помощью защиты SSH или настроить аутентификацию без пароля, рекомендуется оставить это поле пустым. Поэтому мы оставим это поле пустым, еще раз нажав ENTER.

Ниже приведены результаты выполнения команды.

Вы можете просмотреть пару ключей SSH, используя команду ls, как показано.

ls -l ~/.ssh

id_ecdsa — это закрытый ключ, а id_ecdsa.pub — открытый ключ. Закрытый ключ всегда должен оставаться в секрете и не должен передаваться или разглашаться кому-либо. С другой стороны, вы можете предоставить общий доступ к любой удаленной системе, к которой хотите подключиться.

Шаг 2. Скопируйте общедоступный ключ SSH на удаленный RHEL 9.

Следующий шаг — скопировать открытый ключ в удаленный экземпляр RHEL 9. Вы можете сделать это вручную или с помощью инструмента командной строки ssh-copy-id. Поскольку последний гораздо проще и удобнее использовать, вызывайте его, используя следующий синтаксис.

ssh-copy-id user@rhel-9-server-IP

В нашем случае команда будет следующей, где tecmint — это обычный пользователь, а 192.168.254.129 — IP-адрес удаленного пользователя.

ssh-copy-id [email 

Введите «да», чтобы продолжить подключение. Затем укажите пароль удаленного пользователя и нажмите ENTER.

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

ПРИМЕЧАНИЕ. В RHEL 9 вход в систему root через SSH по умолчанию отключен или запрещен. На это есть веские причины — это не позволяет злоумышленнику войти в систему с использованием учетной записи root, которая предоставит ему все привилегии в системе. Поэтому копирование открытого ключа в систему RHEL от имени пользователя root не удастся.

Включить root-вход в RHEL 9

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

sudo vim /etc/ssh/sshd_config

Затем установите для атрибута PermitRootLogin значение yes, сохраните изменения и выйдите из файла.

Чтобы применить внесенные изменения, перезапустите службу SSH.

sudo systemctl restart ssh

Шаг 3. Проверьте аутентификацию открытого ключа SSH

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

ssh [email 

На этот раз вам не будет предложено ввести пароль, и вы перейдете прямо в удаленную оболочку RHEL 9, как показано. Вы также можете проверить наличие файла authorized_keys, как упоминалось ранее.

ls -l ~/.ssh 

Вы также можете просмотреть файл криптографического открытого ключа с помощью команды cat.

cat ~/.ssh/authorized_keys

На рабочем столе Linux, на котором мы сгенерировали ключи SSH, в каталоге ~/.ssh создается файл known_hosts. Он содержит отпечатки всех удаленных серверов, к которым подключена система.

В этом руководстве мы успешно настроили аутентификацию на основе ключей SSH в RHEL 9. Ваши отзывы очень приветствуются.