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

10 января 2019
3493
Ubuntu
ssh-ключи

Вступление

SSH это зашифрованный протокол, часто используемый для администрирования серверов на ОС Linux.

В этой статье мы не расскажем о том, как установить SSH или как произвести установку ssh на Ubuntu. Однако мы расскажем как установить ключ ssh на Ubuntu 18.04.

Такая настройка не обязательна, однако она позволит вам подключаться к серверу без ввода пароля.

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

Первым шагом будет создание пары ключей на вашем компьютере:

ssh-keygen

ssh-keygen создаст 2048-битную пару ключей RSA. Такая длина достаточно безопасна для большинства случаев. При желании вы можете добавить к команде -b 4096, чтобы создать 4096-битный ключ.

После выполнения команды вы должны увидеть следующий вывод:

Generating public/private rsa key pair.
Enter file in which to save the key (/your_home/.ssh/id_rsa):

Нажмите ввод, чтобы сохранить пару ключей в .ssh/ в вашем домашнем каталоге.

Если вы ранее сгенерировали пару ключей SSH, вы можете увидеть следующее:

/home/your_home/.ssh/id_rsa already exists.
Overwrite (y/n)?

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

Затем вы должны увидеть следующее:

Enter passphrase (empty for no passphrase):

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

Затем вы должны увидеть следующий вывод:

Your identification has been saved in /your_home/.ssh/id_rsa.
Your public key has been saved in /your_home/.ssh/id_rsa.pub.
The key fingerprint is:
a9:49:2e:2a:5e:33:3e:a9:de:4e:77:11:58:b6:90:26 user@vash_server
The key's randomart image is:
+--[ RSA 2048]----+
|     ..o         |
|   E o= .        |
|    o. o         |
|        ..       |
|      ..S        |
|     o o.        |
|   =o.+.         |
|. =++..          |
|o=++.            |
+-----------------+

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

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

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

Копирование открытого ключа с использованием ssh-copy-id

ssh-copy-id включен по умолчанию во многих операционных системах семейства Linux. Чтобы этот метод работал, у вас уже должен быть SSH-доступ по паролю к вашему серверу.

Вам просто нужно указать удаленный хост, к которому вы хотите подключиться, и учетную запись пользователя, к которому у вас есть пароль доступа SSH:

ssh-copy-id user@vash_server

Вы можете увидеть следующее сообщение:

The authenticity of host '203.0.113.1 (203.0.113.1)' can't be established.
ECDSA key fingerprint is fd:fd:d4:f9:77:fe:73:84:e1:55:00:ad:d6:6d:22:fe.
Are you sure you want to continue connecting (yes/no)? yes

Это означает, что ваш локальный компьютер не узнает удаленный хост. Это произойдет при первом подключении к новому хосту. Введите «yes» и нажмите ENTERчтобы продолжить.

Далее утилита найдет ваш id_rsa.pubключ, который мы создали ранее. Когда она находит ключ, она запрашивает пароль учетной записи удаленного пользователя:

/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
user@203.0.113.1's password:

Введите пароль (ваш ввод не будет отображаться в целях безопасности) и нажмите ENTER. Утилита подключится к учетной записи на удаленном хосте, используя предоставленный вами пароль. Затем он скопирует ваш ~/.ssh/id_rsa.pub ключ в ~/.ssh домашний каталог удаленной учетной записи на сервере.

Вы должны увидеть следующее:

Number of key(s) added: 1

Now try logging into the machine, with:   "ssh 'user@203.0.113.1'"
and check to make sure that only the key(s) you wanted were added.

Шаг 3 - Аутентификация на сервере Ubuntu с использованием ключей SSH

Теперь вы сможете войти на удаленный хост без пароля удаленной учетной записи.

Процесс такой же:

ssh user@vash_server

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

Готово! Если все прошло успешно, то после аутентификации вам откроется новый сеанс на сервере Ubuntu.

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

Шаг 4 - Отключите аутентификацию по паролю на вашем сервере

Если вход на сервер возможен при помощи пароля, то это означает, что ваш сервер по-прежнему подвержен атакам методом перебора пароля.

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

Этот шаг заблокирует вход в систему на основе пароля, поэтому крайне важно, чтобы вы по-прежнему могли получать root доступ к серверу.

Войдите на удаленный сервер с ключами SSH. Откройте файл конфигурации демона SSH:

sudo nano /etc/ssh/sshd_config

Внутри файла найдите директиву под названием PasswordAuthentication. Строка может быть закомментирована. Раскомментируйте строку и установите значение «no». Это отключит вашу возможность входа через SSH с использованием паролей:

...
PasswordAuthentication no
...

Сохраните и закройте файл, когда вы закончите, нажав CTRL+ X, затем, Yчтобы подтвердить сохранение файла, и, наконец, ENTERвыйти из nano. Далее нам нужно перезапустить sshdсервис:

sudo systemctl restart ssh

Откройте еще одно окно терминала и проверьте, что служба SSH работает правильно:

ssh user@vash_server

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

Заключение

Готово! Теперь на вашем сервере настроена аутентификация на основе SSH-ключа.

Рекомендуемые статьи:

Мы используем файлы cookie для предоставления наших услуг, а также для аналитики и маркетинга. Продолжая просматривать наш веб-сайт, вы соглашаетесь на использование нами файлов cookie.
ОК