Практическое руководство по подключению с помощью 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
- Перейдите на портал Azure, чтобы подключиться к виртуальной машине. Найдите и щелкните Виртуальные машины.
- Затем выберите виртуальную машину из списка.
- Выберите Подключиться в меню слева.
- Выберите вариант, подходящий для вашего предпочтительного способа подключения. Портал поможет вам ознакомиться с предварительными условиями для подключения.
Следующие шаги
Сведения о переносе файлов на существующую виртуальную машину см. в статье Использование SCP для перемещения файлов на виртуальную машину и с нее.