ssh

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

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

В двух словах, SSH или «безопасная оболочка» - это зашифрованный протокол, с помощью которого вы можете удаленно подключиться к серверу и получить доступ к связанной с ним информации. Это обеспечивает гораздо более безопасный способ входа в систему, чтобы обеспечить безопасный способ входа в систему без ущерба для безопасности.

Шаг 1. Создайте пару ключей

Мы начнем с создания пары ключей в клиентской системе сначала с корневым доступом, набрав следующее:

$ ssh-keygen

Это запускает последний ssh-keygen для создания 3072-битной пары ключей RSA по умолчанию. Вы можете добавить флаг -b 4086 для генерации ключа большего размера. Нажмите Enter, и пара ключей сохранится в .ssh / подкаталог. Обратите внимание, что если вы гость на сервере, на котором уже был установлен ключ, в приглашении вас спросят, хотите ли вы его перезаписать или нет. Если это так, введите «y», чтобы дать ответ «да».

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

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

Далее нам нужно передать открытый ключ на ваш сервер ubuntu.

Вы можете использовать утилиту ssh-copy-id, используя следующую команду:

$ ssh-copy-id имя пользователя @ server_host

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

Иногда бывает так, что метод ssh-copy-id не работает или просто недоступен. В этом случае вам нужно будет скопировать его через SSH на основе пароля. Это можно сделать с помощью команды cat и обязательно добавить символ >> для добавления к содержимому вместо его перезаписи.

$ cat ~ /.ssh / id_rsa.паб | ssh имя_пользователя @ ip_адрес_сервера
"mkdir -p ~ /.ssh && cat >> ~ /.ssh / authorized_keys "

Если вы впервые подключаетесь к новому хосту, ваша система покажет вам что-то вроде:

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

В случае, если доступ к SSH на основе пароля запрещен вам по какой-то причине, которую вы не можете закрепить, вы всегда можете просто скопировать открытый ключ вручную. Добавьте ~ /.ssh / authorized_keys на id_rsa.pub файл на вашем удаленном компьютере. Затем войдите в свою учетную запись удаленного сервера и проверьте, существует ли каталог ~ SSH. Если это не так, введите:

$ mkdir -p ~ /.ssh

Теперь вам просто нужно добавить ключ:

$ echo public_key_string >> ~ /.ssh / authorized_keys

$ chmod -R go = ~ /.ssh

Также убедитесь, что вы используете ~ SSH / ПОЛЬЗОВАТЕЛЬ каталог и НЕТ корневой каталог:

$ chown -R younis: younis ~ /.ssh

Шаг 3: аутентифицируйте ключи SSH

Следующим шагом является аутентификация ключей SSH на сервере Ubuntu. Сначала войдите на свой удаленный хост:

$ ssh имя пользователя @ remote_host

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

Шаг 4. Отключите аутентификацию по паролю

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

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

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

Предоставив права администратора вашей учетной записи удаленного доступа, войдите на удаленный сервер с ключами SSH с правами root или sudo. Затем используйте следующую команду для доступа к файлу конфигурации демона SSH:

$ sudo gedit / etc / ssh / sshd_config

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

$ / etc / ssh / sshd_config

Пароль Аутентификация нет

Чтобы эти изменения вступили в силу, вам необходимо перезапустить службу sshd с помощью следующей команды:

$ sudo systemctl перезапуск ssh

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

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

Заключение

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

Лучшие игры с командной строкой для Linux
Командная строка - не только ваш главный союзник при использовании Linux - она ​​также может быть источником развлечений, потому что вы можете использ...
Лучшие приложения для сопоставления геймпадов для Linux
Если вам нравится играть в игры на Linux с помощью геймпада вместо стандартной системы ввода с клавиатуры и мыши, для вас есть несколько полезных прил...
Полезные инструменты для геймеров Linux
Если вам нравится играть в игры на Linux, скорее всего, вы использовали приложения и утилиты, такие как Wine, Lutris и OBS Studio, для улучшения игров...