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

Настройка SSH-ключей на CentOS

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

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

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

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

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

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

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

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

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

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

 ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

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

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

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

Далее вам будет предложено ввести безопасную парольную фразу. Использовать её или нет — решать вам. Парольная фраза обеспечит дополнительный уровень безопасности. Если вы не хотите использовать парольную фразу, просто нажмите Enter .

 Enter passphrase (empty for no passphrase):

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

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

Чтобы проверить, создана ли новая пара ключей 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. Найдите следующие директивы и измените их следующим образом:

    /etc/ssh/sshd_config

     PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
  4. После завершения сохраните файл и перезапустите службу SSH, введя:

     sudo systemctl restart ssh

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

Заключение

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

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

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

Безопасность CentOS SSH Не используете CentOS 8?
Выберите другую ОС:
центос 8 дебиан 10 дебиан 9 убунту 18.04 убунту 20.04

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *