Подключиться к виртуальной машине Linux по SSH
Рекомендуемый способ подключения к ВМ по SSH основан на использовании пары ключей: открытый ключ размещается на ВМ, а закрытый ключ хранится у пользователя. Чтобы другой пользователь мог подключиться к ВМ, добавьте для него SSH-ключ по инструкции. Подключение с помощью пары ключей более безопасно, чем подключение по логину и паролю.
Примечание
Для ВМ с включенным доступом по OS Login рекомендуется при создании ВМ указывать SSH-ключи: так вы сможете подключиться к ВМ по SSH, даже если отключите для нее доступ по OS Login.
Обучающее видео поможет вам подключиться к ВМ Linux по SSH:
Создание пары ключей SSH
-
Откройте терминал.
-
Создайте новый ключ с помощью команды
ssh-keygen
:ssh-keygen -t ed25519
После выполнения команды вам будет предложено указать имена файлов, в которые будут сохранены ключи, и ввести пароль для закрытого ключа. Нажмите Enter, чтобы использовать предложенные командой имя и путь по умолчанию.
Пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
.
Если у вас еще не установлен OpenSSH
-
Запустите
cmd.exe
илиpowershell.exe
(предварительно обновите PowerShell). -
Создайте новый ключ с помощью команды
ssh-keygen
. Выполните команду:ssh-keygen -t ed25519
После выполнения команды вам будет предложено указать имена файлов, в которые будут сохранены ключи, и ввести пароль для закрытого ключа. Нажмите Enter, чтобы использовать предложенные командой имя и путь по умолчанию.
Пара ключей будет создана в текущей директории. Открытый ключ будет сохранен в файле с расширением
.pub
.
Создайте ключи с помощью приложения PuTTY:
-
Скачайте
и установите PuTTY. -
Убедитесь, что директория, куда вы установили PuTTY, присутствует в
PATH
:- Нажмите правой кнопкой на Мой компьютер. Выберите пункт Свойства.
- В открывшемся окне выберите Дополнительные параметры системы, затем Переменные среды (находится в нижней части окна).
- В разделе Системные переменные найдите
PATH
и нажмите Изменить. - В поле Значение переменной допишите путь к директории, куда вы установили PuTTY.
-
Запустите приложение PuTTYgen.
-
В качестве типа генерируемой пары выберите EdDSA. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.
-
В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.
-
Нажмите кнопку Save private key и сохраните закрытый ключ. Никому не сообщайте ключевую фразу от него.
-
Сохраните ключ в текстовом файле. Для этого скопируйте открытый ключ одной строкой из текстового поля в текстовый файл с названием
id_ed25519.pub
.
Важно
Надежно сохраните закрытый ключ: без него подключиться к ВМ будет невозможно.
Копирование публичного ключа в буфер обмена
Скопируйте ключ из файла <имя_ключа>.pub
с помощью любого текстового редактора, например Notepad. Обратите внимание, что ключ должен быть записан одной строкой (не должно быть переносов и разрывов строки).
Ключ можно скопировать и с помощью командной строки:
-
Запустите терминал.
-
Выведите на экран содержимое файла:
cat ~/.ssh/<имя_ключа>.pub
Где
<имя_ключа>
— название ключа, например,id_ed25519
илиid_rsa
.Открытый ключ будет выведен на экран. Выделите текст и скопируйте его в буфер обмена. Например:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABFLIFyapYheN7OZNhTaNqEHefjmU5mtzK********+gRPCz user@Desktop
. -
Можно сразу скопировать содержимое файла в буфер обмена:
Для Linux:
cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard
Для macOS:
cat ~/.ssh/id_ed25519.pub | pbcopy
Вставьте открытый ключ в поле SSH-ключ при создании ВМ через консоль управления
.
-
Запустите
cmd.exe
илиpowershell.exe
. -
Выведите на экран содержимое файла:
type C:\Users\<имя_пользователя>\.ssh\<имя_ключа>.pub
Где:
<имя_пользователя>
— название вашей учетной записи Windows, например,User
.<имя_ключа>
— название ключа, например,id_ed25519
илиid_rsa
.
Открытый ключ будет выведен на экран. Чтобы скопировать ключ, выделите его и нажмите правую кнопку мыши. Например:
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABFLIFyapYheN7OZNhTaNqEHefjmU5mtzK********+gRPCz
. -
Можно сразу скопировать содержимое файла в буфер обмена:
type C:\Users\User\.ssh\id_ed25519.pub | clip
Вставьте открытый ключ в поле SSH-ключ при создании ВМ через консоль управления
.
Подключение к ВМ
Примечание
В публичных образах Linux, предоставляемых Yandex Cloud, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.
Вы можете подключиться к ВМ в статусе RUNNING
по протоколу SSH. Для инициализации всех служб после запуска ВМ может потребоваться время. Если возникла ошибка соединения, попробуйте снова через несколько минут.
Для подключения можно использовать утилиту ssh
в Linux/macOS/Windows 10 и программу PuTTY
Группы безопасности ВМ должны разрешать входящий трафик по протоколу TCP на порт 22.
Для подключения необходимо указать публичный IP-адрес ВМ. Публичный IP-адрес можно узнать в консоли управления в поле Публичный IPv4 блока Сеть на странице ВМ. Если вы создали ВМ только с внутренним IP-адресом, привяжите к ней публичный IP-адрес.
Также можно использовать внутренние IP-адреса и FQDN для установки SSH-соединения между ВМ внутри одной облачной сети Yandex Cloud.
В терминале выполните команду:
ssh <имя_пользователя>@<публичный_IP-адрес_ВМ>
Где <имя_пользователя>
— имя учетной записи пользователя ВМ.
Если у вас несколько закрытых ключей, укажите нужный:
ssh -i <путь_к_ключу/имя_файла_ключа> <имя_пользователя>@<публичный_IP-адрес_ВМ>
При первом подключении к ВМ появится предупреждение о неизвестном хосте:
The authenticity of host '130.193.40.101 (130.193.40.101)' can't be established.
ECDSA key fingerprint is SHA256:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHk********.
Are you sure you want to continue connecting (yes/no)?
Введите в терминале слово yes
и нажмите Enter.
Убедитесь, что учетная запись Windows обладает правами на чтение файлов в папке с ключами.
Для подключения к ВМ в командной строке выполните команду:
ssh <имя_пользователя>@<публичный_IP-адрес_ВМ>
Где <имя_пользователя>
— имя учетной записи пользователя ВМ.
Если у вас несколько закрытых ключей, укажите нужный:
ssh -i <путь_к_ключу\имя_файла_ключа> <имя_пользователя>@<публичный_IP-адрес_ВМ>
При первом подключении к ВМ появится предупреждение о неизвестном хосте:
The authenticity of host '130.193.40.101 (130.193.40.101)' can't be established.
ECDSA key fingerprint is SHA256:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHk********.
Are you sure you want to continue connecting (yes/no)?
Введите в командной строке 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. Если все настроено верно, будет установлено соединение с сервером.
-
Если вы сохранили профиль сессии в PuTTY, в дальнейшем для установки соединения можно использовать Pageant:
- Нажмите правой кнопкой мыши на значок Pageant на панели задач.
- Выберите пункт меню Saved sessions.
- В списке сохраненных сессий выберите нужную сессию.
О решении проблем при подключении читайте в разделе Вопросы и ответы.
Добавление SSH-ключей для других пользователей
Вы можете добавить SSH-ключи для другого пользователя ВМ. Для этого нужно создать нового пользователя и добавить для него файл с авторизованными ключами.
Чтобы создать одновременно нескольких пользователей с ключами, используйте метаданные.
Чтобы настроить пользователей изнутри ВМ, воспользуйтесь инструкцией:
-
Подключитесь к ВМ от имени пользователя, которого вы указали при создании ВМ в консоли управления. Если ВМ создавалась через CLI, то пользователь по умолчанию
yc-user
.Примечание
Получить информацию о ВМ вместе с пользовательскими метаданными можно с помощью команды:
yc compute instance get --full <имя_ВМ>
-
Создайте нового пользователя и укажите для него оболочку
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-адрес_ВМ>