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

Настройка ключей SSH в Ubuntu 20.04

Secure Shell (SSH) — это сетевой протокол для создания защищённого соединения между клиентом и сервером. С помощью SSH можно выполнять команды на удалённых машинах, создавать туннели, перенаправлять порты и многое другое.

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

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

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

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

Скорее всего, на вашем клиентском компьютере Ubuntu уже есть пара ключей 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-ключей на клиентском компьютере Ubuntu.

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

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

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

 ssh-copy-id remote_username@server_ip_address

Вам будет предложено ввести пароль удаленного пользователя:

 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 sudo_user@server_ip_address

Откройте файл конфигурации SSH с помощью текстового редактора :

 sudo nano /etc/ssh/sshd_config

Найдите следующие директивы и измените их следующим образом:

/etc/ssh/sshd_config

 PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no

После этого сохраните файл и перезапустите службу SSH, введя:

 sudo systemctl restart ssh

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

Заключение

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

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

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

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

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

Источник

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

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