Как настроить ключи SSH на CentOS 8

Secure Shell (SSH) — это криптографический сетевой протокол, предназначенный для безопасного соединения между клиентом и сервером.

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

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

Создание ключей SSH в CentOS

Скорее всего, у вас уже есть пара ключей SSH на вашем клиентском компьютере CentOS. Если вы создаете новую пару ключей, старая будет перезаписана.

Выполните следующую команду ls чтобы проверить, существуют ли файлы ключей:

ls -l ~/.ssh/id_*.pub

Если вывод команды возвращает что-то вроде No such file or directory или no matches found это означает, что у пользователя нет ключей SSH, и вы можете перейти к следующему шагу и сгенерировать пару ключей SSH.

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

Чтобы сгенерировать новую 4096-битную пару ключей SSH с вашим адресом электронной почты в качестве комментария, запустите:

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Вам будет предложено указать имя файла:

Enter file in which to save the key (/home/yourusername/.ssh/id_rsa):

Нажмите Enter чтобы принять расположение и имя файла по умолчанию.

Далее вас попросят ввести безопасную парольную фразу. Хотите ли вы использовать кодовую фразу, решать вам. Кодовая фраза добавит дополнительный уровень безопасности. Если вы не хотите использовать кодовую фразу, просто нажмите Enter .

Enter passphrase (empty for no passphrase):

В целом взаимодействие выглядит так:

Чтобы убедиться, что ваша новая пара ключей SSH создана, введите:

ls ~/.ssh/id_*
/home/yourusername/.ssh/id_rsa /home/yourusername/.ssh/id_rsa.pub

Вот и все. Вы успешно сгенерировали пару ключей SSH на своем клиентском компьютере CentOS.

Скопируйте открытый ключ на сервер

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

Самый простой и рекомендуемый способ скопировать открытый ключ на удаленный сервер — использовать утилиту ssh-copy-id . На вашем локальном машинном терминале введите:

ssh-copy-id remote_username@server_ip_address

Команда попросит вас ввести пароль remote_username :

remote_username@server_ip_address's password:

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

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'username@server_ip_address'"
and check to make sure that only the key(s) you wanted were added.

Если ssh-copy-id недоступен на вашем локальном компьютере, используйте следующую команду для копирования открытого ключа:

cat ~/.ssh/id_rsa.pub | ssh remote_username@server_ip_address "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

Войдите на свой сервер с помощью ключей SSH

После выполнения описанных выше действий вы сможете войти на удаленный сервер без запроса пароля.

Чтобы проверить это, попробуйте войти на свой сервер через SSH :

ssh remote_username@server_ip_address

Если вы не установили кодовую фразу для закрытого ключа, вы сразу же войдете в систему. В противном случае вам будет предложено ввести кодовую фразу.

Отключение аутентификации по паролю SSH

Чтобы добавить дополнительный уровень безопасности к удаленному серверу, вы можете отключить аутентификацию по паролю SSH.

Прежде чем продолжить, убедитесь, что вы можете войти на свой сервер без пароля как пользователь с привилегиями sudo .

Выполните следующие действия, чтобы отключить аутентификацию по паролю SSH:

  1. Войдите на свой удаленный сервер:

     ssh sudo_user@server_ip_address
  2. Откройте файл конфигурации SSH /etc/ssh/sshd_config текстовом редакторе :

     sudo nano /etc/ssh/sshd_config
  3. Найдите следующие директивы и измените их следующим образом:

    / и т. д. / ssh / sshd_config
     PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
  4. Когда вы закончите, сохраните файл и перезапустите службу SSH, набрав:

     sudo systemctl restart ssh

На этом этапе аутентификация на основе пароля отключена.

Выводы

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

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

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Оставьте комментарий