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

How Set Up Ssh Keys Ubuntu 20



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

$Кот~/.ssh/id_rsa.pub| sshremote_username@IP-адрес сервера
'mkdir -p ~ / .ssh && cat >> ~ / .ssh / authorized_keys'

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

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

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

$mkdir -п~/.ssh

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

$выбросилpublic_key_string>>~/.ssh/авторизованные_ключи

$chmod идти= ~/.ssh

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

$Chown юнис: юнис ~/.ssh

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

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

$sshимя пользователя@удаленный узел

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

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

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

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

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

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

$судоgedit/так далее/ssh/sshd_config

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

$/так далее/ssh/sshd_config
. . .
Пароль Аутентификация нет
. . .

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

$судоsystemctl перезапускssh

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

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

Заключение

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