Как использовать ключи SSH с Windows в Azure
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
Эта статья предназначена для пользователей Windows, желающих создать и использовать ключи Secure Shell (SSH) для подключения к виртуальным машинам Linux в Azure. Вы также можете создать и сохранить ключи SSH на портале Azure, они будут использоваться при создании виртуальных машин на портале.
Чтобы использовать ключи SSH из клиента Linux или macOS, ознакомьтесь с краткими инструкциями. Более подробный обзор SSH см. в статье Подробная инструкция: создание ключей SSH и управление ими для проверки подлинности на виртуальной машине Linux в Azure.
Общие сведения о SSH и ключах
SSH — это протокол зашифрованного подключения, позволяющий безопасно входить в систему через незащищенные соединения. SSH — это протокол подключения по умолчанию для виртуальных машин Linux, размещенных в Azure. Хотя протокол SSH и обеспечивает зашифрованное подключение, при использовании паролей с SSH виртуальные машины все равно не защищены от атак методом подбора. Мы рекомендуем подключаться к виртуальной машине по SSH с помощью пары "открытый ключ — закрытый ключ", также известных как ключи SSH.
Пара из открытого и закрытого ключей аналогична запиранию двери. Замок общедоступен, любой человек с подходящим ключом может открыть дверь. Ключ является закрытым и предоставляется только доверенным людям, так как его можно использовать для открытия двери.
Открытый ключ размещается на виртуальной машине Linux при ее создании.
Закрытый ключ остается в локальной системе. Его нужно защищать Не делитесь этим.
При подключении к виртуальной машине Linux она проверяет SSH-клиент, чтобы убедиться, что у него есть правильный закрытый ключ. Если у клиента есть закрытый ключ, он получает доступ к виртуальной машине.
В зависимости от политик безопасности организации вы можете повторно использовать отдельную пару ключей для доступа к нескольким виртуальным машинам и службам Azure. Для каждой виртуальной машины не требуется отдельная пара ключей.
Открытый ключ можно предоставить любому пользователю, но только вы (или ваша локальная инфраструктура безопасности) должны иметь доступ к вашему закрытому ключу.
Поддерживаемые форматы ключей SSH
В настоящее время Azure поддерживает следующие типы ключей:
- Протокол SSH 2 (SSH-2) RSA (Rivest, Shamir, Adleman) с минимальной длиной 2048 бит
- ED25519 Ключи с фиксированной длиной 256 бит
Другие ключевые форматы, такие как Elliptic-curve Diffie-Hellman (ECDH) и алгоритм цифровой подписи эллиптических кривых (ECDSA) в настоящее время не поддерживаются.
SSH-клиенты
Последние версии Windows 10 содержат команды клиента OpenSSH для создания и использования ключей SSH и установления SSH-подключений из PowerShell или командной строки.
Можно также использовать Bash в Azure Cloud Shell для подключения к виртуальной машине. Cloud Shell можно использовать в веб-браузере, на портале Azure или в качестве терминала в Visual Studio Code с помощью расширения учетной записи Azure.
Вы также можете установить подсистему Windows для Linux, чтобы подключиться к виртуальной машине по протоколу SSH и использовать другие собственные средства Linux в оболочке Bash.
Создание пары ключей SSH
Для создания ключей SSH для повторного использования и управления ими проще всего использовать портал.
Вы также можете создать пары ключей с помощью Azure CLI и команды az sshkey create, как описано в статье Создание и хранение ключей SSH.
Чтобы создать пару ключей SSH на локальном компьютере с помощью ssh-keygen
команды из PowerShell или командной строки, используйте следующую команду:
ssh-keygen -m PEM -t rsa -b 2048
Введите имя файла или используйте имя по умолчанию, указанное в скобках (например, C:\Users\username/.ssh/id_rsa
). Введите парольную фразу для файла или оставьте парольную фразу пустой, если вы не хотите использовать парольную фразу.
Создание виртуальной машины с помощью собственного ключа
Чтобы создать виртуальную машину Linux, которая использует ключи SSH для аутентификации, укажите свой открытый ключ SSH при создании виртуальной машины.
В Azure CLI вы указываете путь и имя файла для открытого ключа с помощью az vm create
и параметра --ssh-key-value
.
az vm create \
--resource-group myResourceGroup \
--name myVM \
--image Ubuntu2204\
--admin-username azureuser \
--ssh-key-value ~/.ssh/id_rsa.pub
В PowerShell используйте New-AzVM
и добавьте ключ SSH в конфигурацию виртуальной машины с помощью `. Например, изучите Краткое руководство. Создание виртуальной машины Linux в Azure с помощью PowerShell.
Если вы выполняете много развертываний с помощью портала, вам может потребоваться отправить открытый ключ в Azure, где его можно легко выбрать при создании виртуальной машины на портале. Дополнительные сведения см. в статье Отправка ключа SSH.
Подключение к виртуальной машине
С помощью открытого ключа, развернутого на виртуальной машине Azure, и закрытого ключа в локальной системе установите SSH-подключение к виртуальной машине, используя ее IP-адрес или DNS-имя. Замените azureuser и 10.111.12.123 в приведенной команде, указав имя администратора, IP-адрес (или полное доменное имя) и путь к закрытому ключу:
ssh -i ~/.ssh/id_rsa azureuser@10.111.12.123
Если вы никогда не подключились к этой виртуальной машине, прежде чем будет предложено проверить отпечатки узлов. Это заманчиво принять отпечаток, представленный, однако, это предоставляет вам возможного человека в середине атаки. Всегда проверяйте допустимость отпечатка узлов. Вам нужно сделать это только при первом подключении из клиента. Чтобы получить отпечаток узла на портале, используйте команду run с помощью следующей команды: ssh-keygen -lf /etc/ssh/ssh_host_ecdsa_key.pub | awk '{print $2}'
Чтобы выполнить команду с помощью CLI, используйте команду az vm run-command invoke
.
Если при создании пары ключей вы настроили парольную фразу, введите ее при появлении запроса.
Если виртуальная машина использует политику доступа JIT, запросите доступ, прежде чем подключиться к виртуальной машине. Дополнительные сведения о политике JIT см. в статье Управление доступом к виртуальным машинам с помощью JIT-доступа.
Следующие шаги
Сведения о ключах SSH на портале Azure, используемых при создании виртуальных машин, см. в разделе Создание и хранение ключей SSH на портале Azure.
Сведения о ключах SSH в Azure CLI, используемых при создании виртуальных машин, см. в разделе Создание и хранение ключей SSH с помощью Azure CLI.
Подробные инструкции, параметры и дополнительные примеры работы с ключами SSH приведены в статье Подробные инструкции: создание ключей SSH для аутентификации на виртуальной машине Linux в Azure и управление этими ключами.
Если при подключении к виртуальным машинам Linux по протоколу SSH возникают трудности, см. статью Troubleshoot SSH connections to an Azure Linux VM that fails, errors out, or is refused (Устранение неполадок с ошибками, сбоем или отклонением SSH-подключения к виртуальной машине Azure Linux).