Подключиться к виртуальной машине Linux по SSH
Для подключения к ВМ по SSH используется пара ключей: открытый ключ размещается на ВМ, а закрытый ключ хранится у пользователя. Этот способ безопаснее, чем подключение по логину и паролю.
Чтобы другой пользователь мог подключиться к ВМ, добавьте для него SSH-ключ по инструкции.
Примечание
При создании ВМ с доступом по OS Login указывайте SSH-ключи в метаданных. Так вы сможете подключиться к ВМ по SSH, даже если отключите для нее доступ по OS Login.
Чтобы подключиться к ВМ Linux по SSH:
- Создайте пару SSH-ключей.
- Скопируйте открытый ключ в поле SSH-ключ на странице создания ВМ.
- Подключитесь к ВМ.
Обучающее видео поможет вам подключиться к ВМ Linux по SSH:
Создание пары ключей 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
:- Нажмите правой кнопкой на Мой компьютер. Выберите пункт Свойства.
- В открывшемся окне выберите Дополнительные параметры системы, затем Переменные среды (находится в нижней части окна).
- В разделе Системные переменные найдите
PATH
и нажмите Изменить. - В поле Значение переменной допишите путь к директории, куда вы установили PuTTY.
-
Запустите приложение PuTTYgen.
-
В качестве типа генерируемой пары выберите EdDSA. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.
-
В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.
-
Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.
-
Нажмите кнопку Save public key и сохраните открытый ключ в файле
<имя_ключа>.pub
.
Важно
Надежно сохраните закрытый ключ: без него подключиться к ВМ будет невозможно.
Копирование открытого ключа в буфер обмена
Созданный ранее открытый ключ имеет следующий формат:
<тип_ключа> <тело_открытого_ключа> <опциональный_комментарий>
Пример:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABFLIFyapYheN7OZNhTaNqEHefjmU5mtzK********+gRPCz user@Desktop
Совет
Блок <опциональный_комментарий>
не используется при SSH-подключении, вы можете не копировать его.
Откройте файл <имя_ключа>.pub
с помощью любого текстового редактора, например Notepad, и скопируйте из него ключ. Ключ должен быть записан одной строкой (не должно быть переносов и разрывов строки).
Ключ можно скопировать и с помощью командной строки:
В терминале скопируйте ключ одним из следующих способов:
-
Вручную. Для этого выведите на экран содержимое файла:
cat <путь_к_файлу_ключа>/<имя_ключа>.pub
Открытый ключ будет выведен на экран. Скопируйте его в буфер обмена.
-
При помощи соответствующей команды:
-
Для Linux:
cat <путь_к_файлу_ключа>/<имя_ключа>.pub | xclip -selection clipboard
. -
Для macOS:
cat <путь_к_файлу_ключа>/<имя_ключа>.pub | pbcopy
.
Указанные выше команды копируют все содержимое файла, в том числе опциональный комментарий.
-
-
Запустите
cmd.exe
илиpowershell.exe
. -
Скопируйте ключ одним из следующих способов:
-
Вручную. Для этого выведите на экран содержимое файла:
type <путь_к_файлу_ключа>\<имя_ключа>.pub
Открытый ключ будет выведен на экран. Скопируйте его в буфер обмена.
-
При помощи соответствующей команды:
type <путь_к_файлу_ключа>\<имя_ключа>.pub | clip
Указанная выше команда копирует все содержимое файла, в том числе опциональный комментарий.
-
После этого вставьте открытый ключ в поле SSH-ключ при создании ВМ через консоль управления
Подключение к ВМ
Вы можете подключиться к ВМ в статусе RUNNING
по протоколу SSH. Для инициализации всех служб после запуска ВМ может потребоваться время. Если возникла ошибка соединения, попробуйте снова через несколько минут.
Группы безопасности ВМ должны разрешать входящий трафик по протоколу TCP на порт 22.
Для подключения необходимо указать публичный IP-адрес ВМ. Публичный IP-адрес можно узнать в консоли управления, в поле Публичный IPv4-адрес блока Сеть на странице ВМ. Если вы создали ВМ только с внутренним IP-адресом, привяжите к ней публичный IP-адрес.
Также можно использовать внутренние IP-адреса и FQDN для установки SSH-соединения между ВМ внутри одной облачной сети Yandex Cloud.
В терминале выполните команду:
ssh <имя_пользователя>@<публичный_IP-адрес_ВМ>
Где <имя_пользователя>
— имя учетной записи пользователя ВМ. Если ВМ создавалась через CLI, то пользователь по умолчанию — yc-user
.
Если у вас несколько закрытых ключей, укажите нужный:
ssh -i <путь_к_ключу/имя_файла_ключа> <имя_пользователя>@<публичный_IP-адрес_ВМ>
При первом подключении к ВМ появится предупреждение о неизвестном хосте:
The authenticity of host '51.250.83.243 (51.250.83.243)' can't be established.
ED25519 key fingerprint is SHA256:6Mjv93NJDCaf/vu3NYwiLQK4tKI+4cfLtkd********.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Введите в терминале слово yes
и нажмите Enter.
Убедитесь, что учетная запись Windows обладает правами на чтение файлов в папке с ключами.
Для подключения к ВМ в командной строке выполните команду:
ssh <имя_пользователя>@<публичный_IP-адрес_ВМ>
Где <имя_пользователя>
— имя учетной записи пользователя ВМ. Если ВМ создавалась через CLI, то пользователь по умолчанию — yc-user
.
Если у вас несколько закрытых ключей, укажите нужный:
ssh -i <путь_к_ключу\имя_файла_ключа> <имя_пользователя>@<публичный_IP-адрес_ВМ>
При первом подключении к ВМ появится предупреждение о неизвестном хосте:
The authenticity of host '89.169.132.223 (89.169.132.223)' can't be established.
ECDSA key fingerprint is SHA256:DfjfFB+in0q0MGi0HnqLNMdHssLfm1yRanB********.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Введите в командной строке yes
и нажмите Enter.
Установите соединение с помощью приложения PuTTY:
- Запустите приложение Pageant.
- Нажмите правой кнопкой мыши на значок Pageant на панели задач.
- В контекстном меню выберите пункт Add key.
- Выберите сгенерированный PuTTY приватный ключ в формате
.ppk
. Если для ключа задан пароль, введите его.
- Запустите приложение PuTTY.
-
В поле Host Name (or IP address) введите публичный IP-адрес ВМ, к которой вы хотите подключиться. Укажите порт
22
и тип соединения SSH. -
Откройте в дереве слева пункт Connection → SSH → Auth.
-
Установите флаг Allow agent forwarding.
-
Откройте в дереве слева пункт Connection → SSH → Auth → Credentials.
-
В поле Private key file for authentication выберите файл с приватным ключом.
-
Вернитесь в меню Sessions. В поле Saved sessions введите любое название для сессии и нажмите кнопку Save. Настройки сессии сохранятся под указанным именем. Вы сможете использовать этот профиль сессии для подключения с помощью Pageant.
-
Нажмите кнопку Open. Если вы подключаетесь к ВМ в первый раз, может появиться предупреждение о неизвестном хосте:
Нажмите кнопку Accept. Откроется окно терминала с предложением ввести логин пользователя, от имени которого устанавливается соединение. Введите имя пользователя, которое вы указали при создании ВМ, и нажмите Enter. Если ВМ создавалась через CLI, то пользователь по умолчанию —
yc-user
.Если все настроено верно, будет установлено соединение с сервером.
-
Если вы сохранили профиль сессии в PuTTY, в дальнейшем для установки соединения можно использовать Pageant:
- Нажмите правой кнопкой мыши на значок Pageant на панели задач.
- Выберите пункт меню Saved sessions.
- В списке сохраненных сессий выберите нужную сессию.
О решении проблем при подключении читайте в разделе Вопросы и ответы.
Добавление SSH-ключей для других пользователей
Вы можете добавить SSH-ключи для другого пользователя ВМ. Для этого нужно создать нового пользователя и добавить для него файл с авторизованными ключами.
Чтобы создать одновременно нескольких пользователей с ключами, используйте метаданные.
Чтобы настроить пользователей изнутри ВМ, воспользуйтесь инструкцией:
-
Подключитесь к ВМ от имени пользователя, которого вы указали при создании ВМ в консоли управления.
Примечание
Получить информацию о ВМ вместе с пользовательскими метаданными можно с помощью команды:
yc compute instance get --full <имя_ВМ>
-
Создайте нового пользователя
testuser
и укажите для него оболочкуbash
для использования по умолчанию:sudo useradd -m -d /home/testuser -s /bin/bash testuser
-
Переключитесь на созданного пользователя:
sudo su - testuser
-
Создайте папку
.ssh
в домашней директории нового пользователя:mkdir .ssh
-
Создайте в папке
.ssh
файлauthorized_keys
:touch .ssh/authorized_keys
-
Добавьте в файл
authorized_keys
открытый ключ нового пользователя:echo "<открытый_ключ>" >> /home/testuser/.ssh/authorized_keys
-
Измените права доступа к файлу
authorized_keys
и каталогу.ssh
:chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys
-
Отключитесь от ВМ командой
exit
. -
Проверьте подключение для нового пользователя:
ssh testuser@<публичный_IP-адрес_ВМ>