Генерация SSH ключа для сервера

generaciya-ssh-klyucha-dlya-servera-thumb Полезное

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

Генерация SSH ключа в Linux на примере Ubuntu Server

Если вы следовали моему гайду по установке Ubuntu, на сервере уже есть всё необходимое для работы с SSH. Для остальных же может потребоваться установка пакета openssh-server.

Для CentOS:

yum install openssh-server

Для Ubuntu / Debian:

apt install openssh-server

Сам ключ мы будем генерировать на другом, клиентском компьютере, где также предварительно необходимо установить пакеты openssh-server и openssh-clients.

Для CentOS:

yum install openssh-server openssh-clients

Для Ubuntu / Debian:

apt install openssh-server openssh-clients

Для Fedora:

dnf install openssh-server openssh-clients

Далее запускаем процесс генерации командой:

ssh-keygen -t ed25519
Обращаю ваше внимание, что в данном гайде для ключа я буду использовать алгоритм ed25519, как более безопасный, нежели классический rsa ключ.

Введите путь файла, в который будут помещены созданные SSH ключи. По умолчанию кейген предлагает путь в формате /домашний_каталог/.ssh/id_rsa. Если он вас полностью устраивает, пропускаем запрос нажатием Enter.

generaciya-ssh-klyucha-dlya-servera-1

Пароль (или passphrase) используется для дополнительной защиты ключа от постороннего доступа. Так, без пароля ключ просто не сработает и не позволит войти на сервер. Советую не пропускать данный пункт и придумать пароль, который Вам будет удобно использовать. Как закончите, нажмите Enter.

generaciya-ssh-klyucha-dlya-servera-2

Когда ключ будет сгенерирован, вы увидите следующий вывод:

generaciya-ssh-klyucha-dlya-servera-3

Сами ключи будут хранится по указанному ранее пути в файлах id_ed25519.pub (открытый ключи) и id_ed25519 (закрытый ключ).

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

  1. Скопировать ключ напрямую через SSH командой
cat ~/.ssh/id_ed25519.pub | ssh имя-пользователя@ip-адрес-сервера 'cat >> ~/.ssh/authorized_keys'
  1. Скопировать содержимое файла id_ed25519.pub любым текстовым редактором и вставить его на сервер командой:
echo ssh-ed25519 строка-публичного-ключа >> /home/имя-пользователя/.ssh/authorized_keys

Генерация SSH ключа в Windows при помощи PuTTYgen

Для простой генерации SSH ключей в Windows нам понадобится установить 2 программы:

  1. PuTTY — для непосредственного создания ключа;
  2. WinSCP — для копирования открытого ключа на сервер (но здесь вы можете использовать любую похожую программу).

Если вы уже сделали это, запускаем PuTTYgen, входящий в состав основной программы.

generaciya-ssh-klyucha-dlya-servera-4

Выбираем тип ключа EdDSA -> Ed25519 (255 bits).

generaciya-ssh-klyucha-dlya-servera-5

После чего нажимаем на кнопку Generate.

generaciya-ssh-klyucha-dlya-servera-6

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

generaciya-ssh-klyucha-dlya-servera-7

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

generaciya-ssh-klyucha-dlya-servera-8

Для этого указываем пароль для закрытого ключа (данное действие можно пропустить) и поочерёдно нажимаем на кнопки Save public key и Save Private key, сохраняя ключи в удобно место.

generaciya-ssh-klyucha-dlya-servera-9
Если вы не указали пароль, во время сохранения закрытого ключа появится предупреждение. В этом случае нажимаем Да.

Следующим шагом запускаем установленный ранее WinSCP, входим на наш сервер и открываем файл /home/имя-пользователя/.ssh/authorized_keys.

generaciya-ssh-klyucha-dlya-servera-10

Вставляем содержимое ранее созданного файла открытого ключа и сохраняем его.

Дополнительно можно скопировать сам файл открытого ключа на сервер, например в папку /home/имя-пользователя/.ssh.

generaciya-ssh-klyucha-dlya-servera-11

Итог

Мы успешно сгенерировали и привязали SSH ключ для входа на сервер. Но только лишь от этого он не станет более стойким перед несанкционированным входом. Следующим этапом нам необходимо отключить аутентификацию по паролю и оставить вход только при помощи ключа.

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

Нажимая на кнопку «Отправить комментарий», я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.

HomeHosted