Генерация SSH-ключа¶
В этой статье
Использование SSH-ключей позволяет избежать ввода пароля удалённого пользователя, заменив его более сложным в подборе SSH-ключом, что делает процесс управления сервером более безопасным.
Информация
SSH-ключ представляет собой криптографический ключ, используемый для аутентификации пользователя при подключении к удаленному серверу по протоколу SSH.
Существуют два вида SSH-ключей:
-
Публичный ключ - это открытый ключ, который можно передавать на удаленный сервер для идентификации. Он используется для шифрования данных, которые могут быть расшифрованы только с помощью соответствующего приватного ключа. Приватный ключ также может быть использован для шифрования данных, которые затем расшифровываются публичным ключом.
-
Приватный ключ - это закрытый ключ, который должен храниться в секрете на локальной машине пользователя. Он используется для расшифровки данных, зашифрованных публичным ключом.
Для подключения к серверу с использованием SSH-ключей, необходимо создать пару ключей (публичный и приватный) на локальной машине, а затем скопировать публичный ключ на удаленный сервер. После этого будет возможно подключаться к серверу, не указывая пароль удалённого пользователя. Обычно приватный ключ генерируется с паролем, и этот пароль всё таки придётся указать при подключении.
Генерация SSH-ключа для ОС Linux/MacOS¶
Создание SSH-ключа¶
-
Подключиться к серверу по SSH
-
Сгенерировать ключ SSH на локальном устройстве. Для этого нужно выполнить следующую команду в терминале:
После запуска команды будет выведен запрос на выбор имени и расположения файла для ключа. По умолчанию он сохраняется в директории
/.ssh/
, а имя файла будетid_rsa
.Далее система предложит ввести кодовую фразу для дополнительной защиты SSH-подключения. Ввод необязателен:
Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
В терминале появится отпечаток ключа и его изображение:
The key's randomart image is: +---[RSA 3072]----+ | . ..o+=| | . . o +.| | o . o . o.o| | = o . + oo| | . S . + o o| | . = ..o . | | o ..=o+ | | ..+=Xo+ | | .E=*=Oo | +----[SHA256]-----+
Для просмотра созданных SSH-ключей можно использовать команды:
cat ~/.ssh/id_rsa
- просмотр приватного ключа;cat ~/.ssh/id_rsa.pub
- просмотр публичного ключа.
Затем необходимо добавить публичный ключ на сервер. Для этого следует ввести следующую команду, заменив
username
на имя пользователя на сервере иip_address
на IP-адрес сервера:- <username> — имя пользователя;
- <ip_address> — публичный IP-адрес сервера.
После ввода команды система запросит пароль от учетной записи на сервере. После ввода пароля публичный ключ будет скопирован на сервер и добавлен в файл
~/.ssh/authorized_keys
на сервере.После выполнения указанных действия для подключения к серверу с использованием SSH-ключа необходимо ввести команду:
Создание SSH-ключа во время переустановки Linux¶
SSH-ключ возможно добавить во время переустановки операционной системы. Для этого перед запуском установки новой ОС в Invapi во вкладке Переустановка необходимо заполнить поле Public ssh key:
Примечание
Пример запроса для переустановки ОС смотрите в API методов переустановки ОС
Генерация SSH-ключа для ОС Windows¶
Информация
Для генерации SSH-ключей в операционной системе Windows существует два метода: первый - с использованием клиента OpenSSH, и второй - с использованием клиента PuTTY. Ниже приведены инструкции для создания ключей с использованием обоих методов.
Клиент OpenSSH¶
Для генерации SSH-ключа с помощью клиента OpenSSH необходимо выполнить следующий алгоритм действий:
-
Проверить наличие клиента OpenSSH. Для этого можно перейти по пути Параметры >> Приложения >> Дополнительные компоненты и ввести в строку поиска
SSH
:Если клиент не установлен, то необходимо нажать на кнопку
Добавить компоненти найти его, используя строку поиска. Затем нажать кнопкуУстановить.Проверить наличие клиента openSSH также можно с помощью командной строки:
-
Перейти в командную строку (комбинация клавиш Win+R >> ввод в строку
cmd
>> кнопкаОК) и ввести команду:После запуска команды будет выведен запрос на выбор имени и расположения файла для ключа. По умолчанию он сохраняется в директории
/.ssh/
, а имя файла будетid_rsa
.Далее система предложит ввести кодовую фразу для дополнительной защиты SSH-подключения. Ввод необязателен:
Enter file in which to save the key (.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:```
В терминале появится отпечаток ключа и его изображение:
-
Проверить наличие сгенерированных ключей - перейти в указанный ранее каталог на локальном устройстве. Например,
C:\Users\user_name\.ssh
:
PuTTY¶
-
Скачать и установить клиент Putty на локальное устройство;
-
Запустить файл
puttygen.exe
из меню Пуск. -
Выбрать тип ключа
RSA
и нажмите кнопкуGenerate: -
Несколько раз передвинуть мышь в случайных направлениях в окне Key Generation, это действие позволит создать случайный шум:
-
Для защиты ключа с помощью пароля, следует ввести его в поле Key passphrase и повторить в Confirm passphrase. Если дополнительная защита не требуется, можно оставить эти поля пустыми:
Для сохранения приватного ключа следует нажать кнопку Save private key.
Нажать кнопку Save public key, чтобы сохранить публичный ключ на жесткий диск. Этот ключ будет использоваться для авторизации на сервере:
-
Скопировать публичный SSH-ключ на сервер:
- </path/to/file> — полный путь до публичного ключа на локальном компьютере;
- <username> — имя пользователя;
- <ip_address> — публичный IP-адрес сервера;
- </path/to/destination> — путь для хранения публичного ключа на сервере.
Создание SSH-ключа во время переустановки Windows¶
SSH-ключ возможно добавить во время переустановки операционной системы. Для этого перед запуском установки новой ОС в Invapi во вкладке Переустановка необходимо заполнить поле Public ssh key:
Примечание
Пример запроса для переустановки ОС смотрите в API методов переустановки ОС
Удаление SSH-ключа¶
Для удаления SSH-ключа необходимо:
- Открыть файл
authorized_keys
, который обычно находится в директории/.ssh/
. Можно использовать текстовый редактор командной строки, например, Vim или Nano. - Найти строку с публичным ключом, который нужно удалить. Каждая строка соответствует одному ключу.
- Удалить строку с нужным публичным ключом из файла
authorized_keys
. - Сохранить изменения и закрыть файл.
- Перезапустить службу SSH на сервере, чтобы применить изменения. В большинстве случаев это можно сделать командой
sudo service ssh restart
илиsudo systemctl restart sshd
. - Проверить, что ключ больше не работает для входа по SSH.
Примечание
Если на локальном устройстве пользователя установлена OS WIndows, то также можно найти файл known_hosts
и удалить в нем строку с соответствующим SSH-ключом.