Добавить новый SSH-ключ пользователя
Публичный SSH-ключ root-пользователя задается при аренде сервера BareMetal. Чтобы подключаться к серверу по SSH, пользователь должен обладать закрытой частью SSH-ключа.
Если вы утратили закрытую часть SSH-ключа, указанного при аренде сервера, вы можете добавить в профиль root-пользователя сервера новый публичный SSH-ключ.
Создайте новую пару SSH-ключей
Прежде чем приступать к добавлению ключа на сервер BareMetal, создайте на вашем локальном компьютере новую пару SSH-ключей для доступа root-пользователя на сервер по SSH:
-
Откройте терминал.
-
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
Вы можете передать в параметре
-C
пустую строку, чтобы не добавлять комментарий, или не указывать параметр-C
вообще — в таком случае будет добавлен комментарий по умолчанию.После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
, закрытый ключ — в файле без расширения.По умолчанию команда предлагает сохранить ключ под именем
id_ed25519
в директории/home/<имя_пользователя>/.ssh
. Если в этой директории уже есть SSH-ключ с именемid_ed25519
, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.
Если у вас еще не установлен OpenSSH
-
Запустите
cmd.exe
илиpowershell.exe
(предварительно обновите PowerShell). -
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519 -C "<опциональный_комментарий>"
Вы можете передать в параметре
-C
пустую строку, чтобы не добавлять комментарий, или не указывать параметр-C
вообще — в таком случае будет добавлен комментарий по умолчанию.После выполнения команды вам будет предложено указать имя и путь к файлам с ключами, а также ввести пароль для закрытого ключа. Если задать только имя, пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
, закрытый ключ — в файле без расширения.По умолчанию команда предлагает сохранить ключ под именем
id_ed25519
в папкуC:\Users\<имя_пользователя>/.ssh
. Если в этой директории уже есть SSH-ключ с именемid_ed25519
, вы можете случайно перезаписать его и потерять доступ к ресурсам, в которых он используется. Поэтому рекомендуется использовать уникальные имена для всех SSH-ключей.
Создайте ключи с помощью приложения PuTTY:
-
Скачайте
и установите PuTTY. -
Добавьте папку с PuTTY в переменную
PATH
:- Нажмите кнопку Пуск и в строке поиска Windows введите Изменение системных переменных среды.
- Справа снизу нажмите кнопку Переменные среды....
- В открывшемся окне найдите параметр
PATH
и нажмите Изменить. - Добавьте путь к папке в список.
- Нажмите кнопку ОК.
-
Запустите приложение PuTTYgen.
-
В качестве типа генерируемой пары выберите EdDSA. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.
-
В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.
-
Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.
-
Нажмите кнопку Save public key и сохраните открытый ключ в файле
<имя_ключа>.pub
.
Добавьте новый ключ в профиль root-пользователя
В зависимости от ситуации, вы можете добавить новый SSH-ключ несколькими способами.
Совет
Чтобы в KVM-консоли вставить текст из буфера обмена, в правом верхнем углу KVM-консоли правой кнопкой мыши нажмите поле Paste text here и в появившемся контекстном меню выберите Paste
.
Если у вас сохранилась возможность подключаться к серверу от имени root-пользователя с помощью пароля, сгенерированного при аренде сервера, вы можете добавить новый публичный SSH-ключ, не прибегая к Rescue-CD:
-
Подключитесь к KVM-консоли сервера BareMetal.
-
В терминале KVM-консоли аутентифицируйтесь на сервере от имени root-пользователя:
-
В строке с запросом имени пользователя введите
root
и нажмите ENTER:my-server login: root
-
В появившейся строке
Password:
введите пароль root-пользователя, сгенерированный при аренде сервера.
-
-
Перейдите в директорию, в которой хранятся SSH-ключи root-пользователя. Например:
cd /root/.ssh/
-
Замените содержимое файла
authorized_keys
, добавив в него новый публичный SSH-ключ:echo "<новый_SSH-ключ>" | tee authorized_keys
Если вы хотите добавить новый ключ, не удаляя старый, передайте в команду
tee
параметр-a
:echo "<новый_SSH-ключ>" | tee -a authorized_keys
Примечание
На этом этапе вы также можете изменить пароль root-пользователя для доступа на сервер или изменить любые другие настройки операционной системы сервера, которые могут препятствовать корректной загрузке или подключению к нему, а также провести необходимые работы по диагностике и исправлению ошибок.
-
Выйдите из профиля root-пользователя в KVM-консоли:
logout
-
С вашего локального компьютера подключитесь к серверу с новым SSH-ключом, чтобы убедиться, что он работает:
ssh root@<публичный_IP-адрес_сервера>
Если у вас нет возможности подключиться к серверу с помощью пароля root-пользователя, сгенерированного при аренде сервера, вы можете добавить новый публичный SSH-ключ root-пользователя при помощи загрузочного CD-образа Rescue-CD. Дальнейшие действия необходимо выполнять в KVM-консоли.
Чтобы добавить новый публичный SSH-ключ root-пользователя или изменить другие настройки сервера BareMetal:
-
Запустите сервер с CD-образа Rescue-CD.
В основном меню SystemRescue выберите опцию Boot SystemRescue using default options, нажмите ENTER и дождитесь загрузки операционной системы SystemRescue.
-
Посмотрите информацию об устройствах хранения (дисках и созданных на них разделах) сервера:
fdisk -l
Результат:
Disk /dev/sda: 838.36 GiB, 900185481216 bytes, 1758174768 sectors Disk model: SAMSUNG MZ7GE900 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: D79F5407-DEEC-4A1D-983F-3AC5******** Device Start End Sectors Size Type /dev/sda1 2048 614399 612352 299M BIOS boot /dev/sda2 614400 21585919 20971520 10G Linux filesystem /dev/sda3 21585920 34168831 12582912 6G Linux filesystem /dev/sda4 34168832 1732861951 1698693120 810G Linux filesystem Disk /dev/sdb: 838.36 GiB, 900185481216 bytes, 1758174768 sectors Disk model: SAMSUNG MZ7GE900 Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: CDZACB4C-1618-4BAF-A6BB-D2B9******** Device Start End Sectors Size Type /dev/sdb1 2048 614399 612352 299M BIOS boot /dev/sdb2 614400 21585919 20971520 10G Linux filesystem /dev/sdb3 21585920 34168831 12582912 6G Linux filesystem /dev/sdb4 34168832 1732861951 1698693120 810G Linux filesystem Disk /dev/md127: 6 GiB, 6438256640 bytes, 12574720 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/md126: 9.99 GiB, 10729029632 bytes, 20955136 sectors = 512 bytes Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/md125: 809.88 GiB, 869596659712 bytes, 1698430976 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/0 size (minimum/optimal): 512 bytes / 512 bytes Disk /dev/loop: 824.97 MiB, 865046528 bytes, 1689544 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
В примере выше утилита
fdisk
вывела информацию о физических дисках (/dev/sda
и/dev/sdb
) и их разделах, а также о разделах в созданном на сервере RAID-массиве (/dev/md127
,/dev/md126
и/dev/md125
).Диски
/dev/sda
и/dev/sdb
используются в RAID-массиве, корневая файловая система ОС сервера расположена в разделе/dev/md125
размером809.88 GiB
. Этот раздел и необходимо смонтировать. -
Смонтируйте раздел с корневой файловой системой ОС сервера BareMetal:
mount /dev/md125 /mnt
-
Создайте новую среду оболочки ОС SystemRescue с окружением в смонтированной ранее файловой системе ОС сервера BareMetal:
chroot /mnt /bin/bash
-
Перейдите в директорию, в которой хранятся SSH-ключи root-пользователя. Например:
cd /root/.ssh/
-
Замените содержимое файла
authorized_keys
, добавив в него новый публичный SSH-ключ:echo "<новый_SSH-ключ>" | tee authorized_keys
Если вы хотите добавить новый ключ, не удаляя старый, передайте в команду
tee
параметр-a
:echo "<новый_SSH-ключ>" | tee -a authorized_keys
Примечание
На этом этапе вы также можете изменить пароль root-пользователя для доступа на сервер или изменить любые другие настройки операционной системы сервера, которые могут препятствовать корректной загрузке или подключению к нему, а также провести необходимые работы по диагностике и исправлению ошибок.
-
Выполнив все необходимые действия в файловой системе сервера, выйдите из созданного окружения:
exit
-
Отмонтируйте файловую систему сервера BareMetal:
umount /dev/md125 /mnt
Результат:
umount: /mnt: not mounted.
-
Отключите виртуальный CD-дисковод в KVM-консоли:
- В окне KVM-консоли в верхнем меню выберите Media → Virtual Media Wizard... или нажмите на значок с изображением CD-диска.
- В открывшемся окне в секции CD/DVD Media1 нажмите кнопку Disconnect.
- Нажмите Close.
-
Перезапустите сервер:
reboot
-
С вашего локального компьютера подключитесь к серверу с новым SSH-ключом, чтобы убедиться, что он работает:
ssh root@<публичный_IP-адрес_сервера>