Добавление SSH-ключей на виртуальный сервер
SSH-ключи позволяют удаленно администрировать сервер через подключение по зашифрованному протоколу. Для этого используются два ключа:
- приватный — размещается на компьютере;
- публичный — на сервере.
Как добавлять и удалять SSH-ключи в личном кабинете, мы рассказали здесь. Для расширенной настройки зашифрованного удаленного соединения могут понадобиться консольные команды. Как с их помощью создавать SSH-ключи и добавлять их на виртуальные серверы, читайте ниже.
Создание SSH-ключей
Для авторизации на сервере рекомендуется вместо логина и пароля использовать SSH-ключи, например еd25519, rsa, ecdsa и dsa. На разных операционных системах создание ключей отличается.
Linux/macOS
1. Запустите терминал и сгенерируйте два SSH-ключа при помощи команды:
ssh-keygen -t тип_ключа
где тип ключа — это еd25519, rsa, ecdsa или dsa.
2. Появится сообщение о выборе каталога для хранения ключей:
Enter file in which to save the key (~/.ssh/id_тип_ключа).
Можете оставить предложенную директорию или
выбрать другую, указав ее в формате /path/to/id_тип_ключа.
3. Для дополнительной защиты можно ввести кодовую фразу, затем повторить ее и нажать Enter, о чем вас и уведомит сообщение:
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
4. Далее система уведомит вас о том, что ключи сгенерированы, и создаст два файла: приватный ключ — id_тип_файла и публичный — id_тип_файла.pub. А в терминале отобразится отпечаток ключа и его изображение:
Your identification has been saved in ~/.ssh/id_тип_ключа
Your public key has been saved in ~/.ssh/id_тип_ключа.pub
The key fingerprint is:
The key's randomart image is:
5. Для вывода содержимого публичного SSH-ключа используйте команду:
cat <~/.ssh/id_тип_ключа.pub>
где <~/.ssh/id_тип_ключа.pub> — директория публичного ключа, которую вы указали на шаге 2.
Windows
1. Установите PuTTY — программное обеспечение для удаленного администрирования и различных сетевых настроек.2. Запустите PuTTYgen — утилиту для генерации и управления SSH-ключами.
3. В поле Parameters — Type of key to generate выберите тип ключа.
4. Нажмите Generate.
5. Несколько раз произвольно поводите курсором по экрану в окне PuTTYgen для генерации SSH-ключей.
6. Когда ключи будут созданы, нажмите Save public key и Save private key.
7. Укажите директорию для ключей.
8. Опционально вы можете ввести в поле Key passphrase кодовую фразу для дополнительной защиты.
9. Скопируйте публичный SSH-ключ.
Размещение SSH-ключа на виртуальном сервере
Для доступа к серверу по SSH нужно добавить публичный SSH-ключ в файл ~/.ssh/authorized_keys. В определенных ситуациях полезно добавить несколько ключей, например для настройки доступа разным пользователям.
Публичные SSH-ключи можно разместить на сервере при помощи двух способов:
- создав копию ключа через консольную команду;
- вручную.
Копирование публичного SSH-ключа с локального компьютера
Команда ssh-copy-id добавляет публичный SSH-ключ в файл ~/.ssh/authorized_keys. Директория и файл создаются автоматически при их отсутствии. На разных ОС этот шаг выполняется с некоторыми отличиями.
На Linux/macOS
1. Запустите терминал на локальном компьютере.
2. Для копирования ключа выполните команду:
ssh-copy-id -i <~/.ssh/id_тип_ключа.pub> имя_пользователя@ ip_адрес
где: <~/.ssh/id_rsa.pub> — директория с публичным ключом на компьютере.
3. Введите пароль пользователя.
На Windows
1. Откройте cmd на компьютере.2. Скопируйте публичный SSH-ключ на виртуальный сервер при помощи команды:
C:\ProgramData\ssh\authorized_keys
Размещение публичного SSH-ключа на сервере вручную
1. Откройте файл с публичным SSH-ключом на компьютере:
- Для Linux/macOS — cat ~/.ssh/id_тип_ключа.pub
- Для Windows — type C:\ProgramData\ssh\authorized_keys
2. Скопируйте значение публичного SSH-ключа.
3. Подключитесь к серверу
4. Перейдите в директорию cd .ssh
5. Выполните в этой папке команду touch authorized_keys для создания соответствующего файла.
6. Добавьте в этот файл скопированный в пункте 2 SSH-ключ:
echo <public_ssh_key> >> ~/.ssh/authorized_keys
где <public_ssh_key> — скопированный ключ.
7. Настройте права доступа:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
