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

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

21 Декабря 2019 | CentOS

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

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

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

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


Перед созданием новой пары ключей 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 сгенерирована, введите:


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

Теперь, когда генерируется пара ключей 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 remote_username@server_ip_address


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

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


    Комментарии

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

Загрузка комментариев...