Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Compute Cloud
  • Начало работы
  • Пошаговые инструкции
    • Все инструкции
    • Создание виртуальной машины
    • DSVM
    • Группы размещения
    • Образы с предустановленным ПО
    • Получение информации о виртуальной машине
    • Управление виртуальной машиной
    • Работа на виртуальной машине
      • Подключиться к ВМ по SSH
      • Подключиться к ВМ по RDP
      • Подключиться к ВМ через PowerShell
      • Работа с Yandex Cloud изнутри ВМ
      • Установить NVIDIA-драйверы
      • Восстановить доступ к ВМ
    • Управление агентом для сброса паролей
    • Создание диска
    • Управление диском
    • Снимки дисков
    • Группы размещения дисков
    • Создание образа
    • Управление образом
    • Файловые хранилища
    • Управление серийной консолью
    • Создание группы виртуальных машин
    • Получение информации о группе виртуальных машин
    • Управление группой виртуальных машин
    • Выделенные хосты
  • Yandex Container Solution
  • Практические руководства
  • Концепции
  • Управление доступом
  • Правила тарификации
  • Справочник API
  • Вопросы и ответы
  1. Пошаговые инструкции
  2. Работа на виртуальной машине
  3. Подключиться к ВМ по SSH

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

Статья создана
Yandex Cloud
  • Создание пары ключей SSH
  • Копирование публичного ключа в буфер обмена
  • Подключение к виртуальной машине
  • Добавление SSH-ключей для других пользователей

Рекомендуемый способ подключения к виртуальной машине по SSH основан на использовании пары ключей: открытый ключ размещается на ВМ, а закрытый ключ хранится у пользователя. Подключение с помощью пары ключей более безопасно, чем подключение по логину и паролю.

Создание пары ключей SSH

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

Примечание

В публичных образах Linux, предоставляемых Yandex Cloud, возможность подключения по протоколу SSH с использованием логина и пароля по умолчанию отключена.

Чтобы создать пару ключей:

Linux/MacOS
Windows 10
Windows 7/8
  1. Откройте терминал.

  2. Создайте новый ключ с помощью команды ssh-keygen:

    ssh-keygen -t ed25519
    

    После выполнения команды вам будет предложено указать имена файлов, в которые будут сохранены ключи, и ввести пароль для закрытого ключа. Нажмите Enter, чтобы использовать имя по умолчанию id_ed25519. Пара ключей будет создана в директории ~/.ssh.

    Открытый ключ будет сохранен в файле <имя_ключа>.pub.

  1. Запустите cmd.exe или powershell.exe.

  2. Создайте новый ключ с помощью команды ssh-keygen. Выполните команду:

    ssh-keygen -t ed25519
    

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

    Пара ключей будет создана в директории C:\Users\<имя_пользователя>\.ssh\ или C:\Users\<имя_пользователя>\ в зависимости от интерфейса командной строки.

    Открытый ключ будет сохранен в файле с названием <имя_ключа>.pub.

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

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

  2. Убедитесь, что директория, куда вы установили PuTTY, присутствует в PATH:

    1. Нажмите правой кнопкой на Мой компьютер. Выберите пункт Свойства.
    2. В открывшемся окне выберите Дополнительные параметры системы, затем Переменные среды (находится в нижней части окна).
    3. В разделе Системные переменные найдите PATH и нажмите Изменить.
    4. В поле Значение переменной допишите путь к директории, куда вы установили PuTTY.
  3. Запустите приложение PuTTYgen.

  4. В качестве типа генерируемой пары выберите Ed25519. Нажмите Generate и поводите курсором в поле выше до тех пор, пока не закончится создание ключа.

    ssh_generate_key

  5. В поле Key passphrase введите надежный пароль. Повторно введите его в поле ниже.

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

  7. Сохраните ключ в текстовом файле. Для этого скопируйте открытый ключ одной строкой из текстового поля в текстовый файл с названием id_ed25519.pub.

Важно

Надежно сохраните закрытый ключ: без него подключиться к ВМ будет невозможно.

Копирование публичного ключа в буфер обмена

Скопируйте ключ из файла <имя_ключа>.pub с помощью любого текстового редактора, например Notepad. Обратите внимание, что ключ должен быть записан одной строкой (не должно быть переносов и разрывов строки).

Ключ можно скопировать и с помощью командной строки:

Windows
Linux
macOS
  1. Запустите cmd.exe или powershell.exe.

  2. Выведите на экран содержимое файла:

    type C:\Users\<имя_пользователя>\.ssh\<имя_ключа>.pub
    

    Где:

    • <имя_пользователя> — название вашей учетной записи Windows, например, User.
    • <имя_ключа> — название ключа, например, id_ed25519 или id_rsa.

    Открытый ключ будет выведен на экран. Чтобы скопировать ключ, выделите его и нажмите правую кнопку мыши. Например: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABFLIFyapYheN7OZNhTaNqEHefjmU5mtzK7roNnfzL+gRPCz.

  3. Можно сразу скопировать содержимое файла в буфер обмена:

    type C:\Users\User\.ssh\id_ed25519.pub | clip
    

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

  1. Запустите терминал.

  2. Выведите на экран содержимое файла:

    cat ~/.ssh/<имя_ключа>.pub
    

    Где <имя_ключа> — название ключа, например, id_ed25519 или id_rsa.

    Открытый ключ будет выведен на экран. Выделите текст и скопируйте его в буфер обмена. Например: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABFLIFyapYheN7OZNhTaNqEHefjmU5mtzK7roNnfzL+gRPCz user@Desktop.

  3. Можно сразу скопировать содержимое файла в буфер обмена:

    cat ~/.ssh/id_ed25519.pub | xclip -selection clipboard
    

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

  1. Запустите терминал.

  2. Выведите на экран содержимое файла:

    cat ~/.ssh/<имя_ключа>.pub
    

    Где <имя_ключа> — название ключа, например, id_ed25519 или id_rsa.

    Открытый ключ будет выведен на экран. Выделите текст и скопируйте его в буфер обмена. Например: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5ABFLIFyapYheN7OZNhTaNqEHefjmU5mtzK7roNnfzL+gRPCz user@Desktop.

  3. Можно сразу скопировать содержимое файла в буфер обмена:

    cat ~/.ssh/id_ed25519.pub | pbcopy
    

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

Подключение к виртуальной машине

Вы можете подключиться к виртуальной машине в статусе RUNNING по протоколу SSH. Для инициализации всех служб после запуска ВМ может потребоваться время. Если возникла ошибка соединения, попробуйте снова через несколько минут.

Для подключения можно использовать утилиту ssh в Linux/macOS/Windows 10 и программу PuTTY для Windows 7/8.

Группы безопасности виртуальной машины должны разрешать входящий трафик по протоколу TCP на порт 22.

Примечание

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

Чтобы включить группы безопасности, запросите в технической поддержке доступ к этой функции.

Для подключения необходимо указать публичный адрес виртуальной машины. Публичный IP-адрес можно узнать в консоли управления в поле Публичный IPv4 блока Сеть на странице виртуальной машины. Если вы создали машину только с внутренним адресом, привяжите к ней публичный адрес.

Также можно использовать внутренние IP-адреса и FQDN для установки SSH-соединения между виртуальными машинами внутри одной облачной сети Yandex Cloud.

Linux/macOS
Windows 10
Windows 7/8

В терминале выполните команду:

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:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHkGgpLELJ8.
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:PoaSwqxRc8g6iOXtiH7ayGHpSN0MXwUfWHkGgpLELJ8.
Are you sure you want to continue connecting (yes/no)?

Введите в командной строке yes и нажмите Enter.

В Windows соединение устанавливается с помощью приложения PuTTY.

  1. Запустите приложение Pageant.
    1. Нажмите правой кнопкой мыши на значок Pageant на панели задач.
    2. В контекстном меню выберите пункт Add key.
    3. Выберите сгенерированный PuTTY приватный ключ в формате .ppk. Если для ключа задан пароль, введите его.
  2. Запустите приложение PuTTY.
    1. В поле Host Name (or IP address) введите публичный IP-адрес виртуальной машины, к которой вы хотите подключиться. Укажите порт 22 и тип соединения SSH.

      ssh_add_ip

    2. Откройте в дереве слева пункт Connection - SSH - Auth.

    3. Установите флаг Allow agent forwarding.

    4. В поле Private key file for authentication выберите файл с приватным ключом.

      ssh_choose_private_key

    5. Вернитесь в меню Sessions. В поле Saved sessions введите любое название для сессии и нажмите кнопку Save. Настройки сессии сохранятся под указанным именем. Вы сможете использовать этот профиль сессии для подключения с помощью Pageant.

      ssh_save_session

    6. Нажмите кнопку Open. Если вы подключаетесь к машине в первый раз, может появиться предупреждение о неизвестном хосте:

      ssh_unknown_host_warning

      Нажмите кнопку Да. Откроется окно терминала с предложением ввести логин пользователя, от имени которого устанавливается соединение. Введите имя пользователя, которое вы указали при создании виртуальной машины и нажмите Enter. Если все настроено верно, будет установлено соединение с сервером.

      ssh_login

Если вы сохранили профиль сессии в PuTTY, в дальнейшем для установки соединения можно использовать Pageant:

  1. Нажмите правой кнопкой мыши на значок pageant на панели задач.
  2. Выберите пункт меню Saved sessions.
  3. В списке сохраненных сессий выберите нужную сессию.

Добавление SSH-ключей для других пользователей

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

  1. Зайдите на виртуальную машину под именем пользователя, которого вы указали при создании виртуальной машины в консоли управления. Если виртуальная машина создавалась через CLI, то пользователь по умолчанию yc-user.

    Примечание

    Получить информацию о виртуальной машине вместе с пользовательскими метаданными можно с помощью команды:

    yc compute instance get --full <имя-виртуальной-машины>
    
  2. Создайте нового пользователя и укажите для него оболочку bash для использования по умолчанию:

    sudo useradd -m -d /home/testuser -s /bin/bash testuser
    
  3. Переключитесь на созданного пользователя:

    sudo su - testuser
    
  4. Создайте папку .ssh в домашней директории нового пользователя:

    mkdir .ssh
    
  5. Создайте в папке .ssh файл authorized_keys:

    touch .ssh/authorized_keys
    
  6. Добавьте в файл authorized_keys публичный ключ нового пользователя:

    echo "<публичный_ключ>" > /home/testuser/.ssh/authorized_keys
    
  7. Измените права доступа к файлу authorized_keys и каталогу .ssh:

    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    
  8. Отключитесь от виртуальной машины командой exit.

  9. Перезапустите виртуальную машину.

  10. Проверьте подключение для нового пользователя:

    ssh testuser@<публичный_IP-адрес_виртуальной_машины>
    

Что дальше

  • Узнайте, как работать с Yandex Cloud изнутри виртуальной машины

Была ли статья полезна?

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Создание пары ключей SSH
  • Копирование публичного ключа в буфер обмена
  • Подключение к виртуальной машине
  • Добавление SSH-ключей для других пользователей