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

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

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

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

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

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

Перед генерацией новой пары ключей SSH рекомендуется проверить наличие существующих ключей SSH на клиентском компьютере CentOS.

Для этого выполните следующую команду ls , которая выведет список всех открытых ключей, если таковые имеются:

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

Если вывод команды возвращает что-то вроде No such file or directory или no matches found это означает, что на вашем клиентском компьютере нет ключей 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 passphrase (empty for no passphrase):

Если вы не хотите использовать пароль, просто нажмите Enter .

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

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

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

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

Скопируйте открытый ключ на сервер 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 .

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

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

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

Источник

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

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