Поделиться через


Практическое руководство по подключению с помощью Secure Shell (SSH) и входу в виртуальную машину Azure под управлением Windows

Область применения: ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы

Проект Win32 OpenSSH обеспечивает удаленное подключение к Secure Shell, предоставляя встроенную поддержку в Windows. Эта возможность предоставляется в Windows Server версии 2019 и более поздних версий и может быть добавлена в более ранние версии Windows с помощью расширения виртуальной машины.

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

Shell Пример
Bash/ZSH myResourceGroup='resGroup10'
PowerShell $myResourceGroup='resGroup10'

Включение SSH

Во-первых, необходимо включить SSH на компьютере с Windows.

Разверните расширение SSH для Windows. Расширение обеспечивает автоматическую установку решения Win32 OpenSSH, аналогично включению возможностей в более новых версиях Windows. Используйте приведенные ниже примеры, чтобы развернуть расширение.

az vm extension set --resource-group $myResourceGroup --vm-name $myVM --name WindowsOpenSSH --publisher Microsoft.Azure.OpenSSH --version 3.0

Открытие порта TCP

Убедитесь, что для подключения к виртуальной машине открыт соответствующий порт (по умолчанию TCP 22).

az network nsg rule create -g $myResourceGroup --nsg-name $myNSG -n allow-SSH --priority 1000 --source-address-prefixes 208.130.28.4/32 --destination-port-ranges 22 --protocol TCP
  • У виртуальной машины должен быть общедоступный IP-адрес. Чтобы проверить, есть ли у виртуальной машины общедоступный IP-адрес, выберите Обзор в меню слева и найдите раздел Сеть. Если вы видите IP-адрес рядом с параметром Общедоступный IP-адрес, у виртуальной машины есть общедоступный IP-адрес. Дополнительные сведения о добавлении общедоступного IP-адреса к существующей виртуальной машине см. в статье Связывание общедоступного IP-адреса с виртуальной машиной.

  • Убедитесь, что виртуальная машина работает. На вкладке "Обзор" в разделе "Основные компоненты" убедитесь, что виртуальная машина имеет состояние "Запущена". Чтобы запустить виртуальную машину, выберите Запустить в верхней части страницы.

Проверка подлинности

Вы можете пройти проверку подлинности на компьютерах Windows с помощью имени пользователя и пароля или ключей SSH. Azure не поддерживает подготовку открытых ключей на компьютерах Windows автоматически, однако вы можете скопировать ключ с помощью расширения RunCommand.

Общие сведения о SSH и ключах

SSH — это протокол зашифрованного подключения, обеспечивающий безопасный вход в систему через незащищенные соединения. Хотя протокол SSH и обеспечивает зашифрованное подключение, использование паролей для соединений SSH все же сохраняет уязвимость виртуальной машины к атакам методом подбора. Мы рекомендуем подключаться к виртуальной машине по SSH с помощью пары "открытый ключ — закрытый ключ", также известных как ключи SSH.

  • Открытый ключ размещается на виртуальной машине.

  • Закрытый ключ остается в локальной системе. Его нужно защищать и нельзя никому предоставлять.

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

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

Открытый ключ можно предоставить любому пользователю, но только вы (или ваша локальная инфраструктура безопасности) должны иметь доступ к вашему закрытому ключу.

Поддерживаемые форматы ключей SSH

В настоящее время Azure поддерживает следующие типы ключей:

  • Протокол SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) с минимальной длиной 2048 бит
  • ED25519 Ключи с фиксированной длиной 256 бит

Другие ключевые форматы, такие как Elliptic-curve Diffie-Hellman (ECDH) и алгоритм цифровой подписи эллиптических кривых (ECDSA) в настоящее время не поддерживаются.

Скопируйте открытый ключ с помощью расширения RunCommand.

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

az vm run-command invoke -g $myResourceGroup -n $myVM --command-id RunPowerShellScript --scripts "MYPUBLICKEY | Add-Content 'C:\ProgramData\ssh\administrators_authorized_keys' -Encoding UTF8;icacls.exe 'C:\ProgramData\ssh\administrators_authorized_keys' /inheritance:r /grant 'Administrators:F' /grant 'SYSTEM:F'"

Подключение с помощью CLI Az

Подключитесь к компьютерам Windows с помощью команд Az SSH.

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername

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

az ssh vm  -g $myResourceGroup -n $myVM --local-user $myUsername -- -L 3389:localhost:3389

Подключение с помощью портала Azure

  1. Перейдите на портал Azure, чтобы подключиться к виртуальной машине. Найдите и щелкните Виртуальные машины.
  2. Затем выберите виртуальную машину из списка.
  3. Выберите Подключиться в меню слева.
  4. Выберите вариант, подходящий для вашего предпочтительного способа подключения. Портал поможет вам ознакомиться с предварительными условиями для подключения.

Следующие шаги

Сведения о переносе файлов на существующую виртуальную машину см. в статье Использование SCP для перемещения файлов на виртуальную машину и с нее.