Top.Mail.Ru

Облако

SSH. Подключиться к виртуальной машине по SSH

Подключиться к машине по SSH можно с помощью пары SSH-ключей либо пароля. Рассказываем подробно о каждом способе

SSH-протокол — сетевой протокол, предназначенный для защищённого удалённого доступа к операционной системе и передачи данных. Для подключения по SSH удостоверьтесь, что в настройках файрвола установлено соответствующее правило для входящего трафика. 

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

Генерация SSH-ключа с использованием командной строки (cmd) в операционных системах Windows 7/8 не предусмотрена.

Для генерации воспользуйтесь приложением PuTTY и входящим в пакет дополнением PuTTYgen.

1. Скачайте и установите приложение PuTTY.

2. Запустите приложение PuTTYgen.

3. В поле «Type of key to generate» укажите RSA.

4. Для поля «Number of bits in a generated key» установите значение «2048».

5. Нажмите Generate.

SSH. Подключиться к виртуальной машине по SSH

Важно. Во время генерации ключа водите курсором в поле «Key» до тех пор, пока ключ не появится в поле.

6. В поле «Key passphrase» введите надёжный пароль.

7. Подтвердите пароль в поле «Confirm passphrase».

8. Нажмите кнопку Save private key и сохраните закрытый ключ.

SSH. Подключиться к виртуальной машине по SSH

Внимание. Никогда не передавайте закрытый ключ и пароль сторонним лицам.

9. Нажмите Save public key и сохраните открытый ключ в удобном для вас месте.

10. Вы всегда можете открыть и скопировать сохранённые ключи при помощи приложения «Блокнот».

Чтобы сгенерировать ключи на Linux/MacOS/Windows 10:

1. Откройте консоль, терминал (MacOS) или командную строку (cmd.exe) для Windows 10.

2. Выполните команду:

ssh-keygen -t rsa -b 2048

3. Укажите название ключа в строке «Enter file in which to save the key».

Внимание. Если не указывать директорию (например, .ssh/ ), ключи сохранятся в ~./<имя ключа> (для Linux/MacOS) или в C:\Users\<имя_пользователя>\<имя ключа> (для Windows 10).

4. Нажмите Enter.

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

6. Подтвердите пароль или оставьте поле пустым и нажмите Enter для сохранения ключа без пароля.

SSH. Подключиться к виртуальной машине по SSH

7. Ключ создан в директории по умолчанию или в той, которую вы прописали. 

SSH. Подключиться к виртуальной машине по SSH

8. Публичная часть ключа будет сохранена в файле «<имя_ключа>.pub». Используйте его для последующего добавления к виртуальной машине. Файл можно открыть в текстовом виде в приложении «Блокнот».

Для создания SSH-ключа из личного кабинета следуйте описанным ниже шагам.

1. В личном кабинете перейдите в раздел Ключи SSH.

2. Нажмите Сгенерировать ключ.

SSH. Подключиться к виртуальной машине по SSH

3. Введите название ключа и нажмите Создать SSH ключ

Важно. Допускается использование символов только латинского алфавита, нижнего подчеркивания, пробелов и точек. Длина имени должна быть от 3 до 63 символов.

4. Ключ сгенерируется и отобразится в списке SSH-ключей, его открытая часть уже будет храниться в системе, а закрытый ключ будет загружен на устройство в папку по умолчанию.

5. Для просмотра закрытого ключа найдите его на устройстве и откройте с помощью приложения «Блокнот».

Чтобы добавить уже созданный SSH-ключ в личный кабинет:

1. В панели управления сервиса Облако перейдите в раздел Ключи SSH.

2. Нажмите Добавить SSH ключ.

SSH. Подключиться к виртуальной машине по SSH

3. В поле «Содержимое ключа SSH» вставьте публичную часть SSH-ключа.

4. Задайте имя ключа в поле «Имя».

5. Нажмите Добавить SSH ключ.

SSH. Подключиться к виртуальной машине по SSH

Ключ появится в списке SSH-ключей.

1. Выберите SSH-ключ, который нужно удалить.

2. Нажмите напротив него на знак ···.

3. Выберите Удалить.

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

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

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

  • добавить уже имеющийся в локальном хранилище ключ;

  • сгенерировать новый ключ.

1. При нажатии на Добавить SSH ключ откроется диалоговое окно. Добавьте открытую часть SSH-ключа, введите имя ключа для идентификации его в нашей системе и сохраните его.

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

2. При нажатии на кнопку Сгенерировать SSH ключ, откроется диалоговое окно, введите имя ключа для идентификации его в системе.

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

После добавления или генерации нового SSH-ключа ключи будут появится в разделе Ключи SSH.

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

При создании виртуальной машины в пункте Дополнительные возможности активируйте опцию Пользовательские данные. Откроется окно, куда можно вписать скрипт для обработки cloud-init агентом, запущенным на виртуальной машине.

SSH. Подключиться к виртуальной машине по SSH

Впишите в поле код:

#cloud-config
password: ваш пароль
chpasswd: { expire: False }
ssh_pwauth: True

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

Пароль не обязательно добавлять в явном виде, можно вписать его хэш-сумму (тот же пароль, только преобразованный; машина сможет его считать, а для человека он выглядит как случайный набор символов). Тогда, даже если кто-то попадёт в систему, то всё равно не узнает пароль — внутри будет храниться хэш-сумма. А система даст войти только по паролю. Для генерации хэш-суммы вы можете воспользоваться скриптом на Python:

#!/usr/bin/env python3
# based on https://stackoverflow.com/a/17992126/117471
# pip3 install passlib
import sys
from getpass import getpass
from passlib.hash import sha512_crypt
passwd = input() if not sys.stdin.isatty() else getpass()
print(sha512_crypt.hash(passwd , rounds = 5000 ))

Важно. Подключение к виртуальной машине по SSH с использованием командной строки (cmd) в операционных системах Windows 7/8 не предусмотрено.

Для подключения воспользуйтесь приложением PuTTY.

1. Скачайте и запустите приложение PuTTY.

2. В разделе Session в поле «Host Name (or IP address)» введите IP-адрес виртуальной машины, который можно найти в столбце «IP адрес» в разделе Виртуальные машины.

SSH. Подключиться к виртуальной машине по SSH

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

3. В поле «Port» установите «22» — стандартный порт для подключения по SSH.

4. Далее для поля «Connection type» задайте значение SSH.

5. (Пункт только для тех, кто подключается с помощью SSH-ключа) в правой части экрана перейдите в Connection  SSH  Auth → Credentials.

6. (Пункт только для тех, кто подключается с помощью SSH-ключа) нажмите Browse.

SSH. Подключиться к виртуальной машине по SSH

7. (Пункт только для тех, кто подключается с помощью SSH-ключа) выберите файл с приватным ключом для виртуальной машины в формате .ppk.

Важно. Если ваш приватный ключ сохранен в формате .pem, конвертируйте его в формат .ppk, как описано в статье Конвертировать SSH-ключ из формата PEM в PPK

8. Нажмите Open. Откроется консоль.

SSH. Подключиться к виртуальной машине по SSH

9. В строке «login as» введите имя пользователя, выданное вам при создании виртуальной машины. Оно находится в меню виртуальной машины, там стоит надпись вида [логин]@[IP машины]. Чаще всего логин совпадает с названием ОС. Например, для машины ниже это ubuntu

SSH. Подключиться к виртуальной машине по SSH

10. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, заданный вами при создании машины.

SSH. Подключиться к виртуальной машине по SSH

11. Нажмите Enter.

12. Вы подключились к виртуальной машине.

Внимание. Если вы используете Linux OS или Mac OS, перейдите к шагу №6.

В Windows 10 есть встроенный клиент OpenSSH, который позволяет получать доступ к серверу через консоль так же, как и на Linux OS. По умолчанию этот компонент не активирован.

Для его установки:

1. Перейдите в меню Параметры Windows.

2. Перейдите в раздел Приложения, нажмите Дополнительные компоненты.

SSH. Подключиться к виртуальной машине по SSH

3. Нажмите Добавить компонент. В списке найдите OpenSSH Client и нажмите для раскрытия подробного описания.

4. Нажмите Установить.

5. Дождитесь завершения установки. После того, как OpenSSH Client будет установлен, перезагрузите компьютер для корректного применения настроек. Для командной строки станет доступна утилита SSH.

6. Откройте командную строку/терминал и введите команду со своими значениями:

  • ssh username@192.168.1.92 — для подключения с помощью пароля;
  • ssh username@192.168.1.92 -i "C:\Users\username\.ssh\id_rsa" — для подключения с помощью ключа.

username

Имя пользователя. Оно указано в информации о виртуальной машине справа от кнопки Открыть консоль.

192.168.1.92

IP-адрес вашей виртуальной машины.

Важно. Если вы создали виртуальную машину только с приватным интерфейсом, создайте плавающий IP-адрес и используйте его при подключении к ВМ по SSH.

C:\Users\username\.ssh\id_rsa

Путь к файлу с приватным ключом в вашем локальном хранилище.

Ключ должен быть в формате .pem.

7. Утилита предложит добавить устройство в список известных, напишите yes, чтобы добавить, или no, чтобы не добавлять. Нажмите Enter.

SSH. Подключиться к виртуальной машине по SSH

8. (Пункт только для тех, кто подключается с помощью пароля) введите пароль, который вы задали при создании машины.

SSH. Подключиться к виртуальной машине по SSH

9. Вы подключились к виртуальной машине.

Мы используем cookie, чтобы сайт стал лучше для вас.