#azure #ssh
#azure #ssh
Вопрос:
Я пытаюсь создать шаблон azure ARM, который будет запускать кластер с несколькими виртуальными машинами.
Я могу предоставить открытый ключ SSH для всех компьютеров, но я бы хотел, чтобы одна машина, ведущая, могла получать доступ через закрытый ключ SSH к другим машинам.
Как я могу предоставить главному компьютеру закрытый ключ во время шаблона? Есть ли конкретный способ сделать это?
Спасибо, Роб
Ответ №1:
Да, для этого вы должны использовать Azure Key Vault. Вы можете предоставить защищенный параметр виртуальной машине во время развертывания, например:
"osProfile": {
"computerName": "[parameters('vmName')]",
"adminUsername": "[parameters('adminUsername')]",
"adminPassword": "[parameters('adminPassword')]",
"secrets": [
{
"sourceVault": {
"id": "[resourceId(parameters('vaultResourceGroup'), 'Microsoft.KeyVault/vaults', parameters('vaultName'))]"
},
"vaultCertificates": [
{
"certificateUrl": "[parameters('certificateUrl')]",
"certificateStore": "My"
}
]
}
],
но для Linux вы должны использовать что-то вроде этого:
"osProfile": {
"linuxOperatingSystemProfile": {
"username": "[parameters('sshUserName')]",
"sshProfile": {
"publicKeys": [
{
"certificateData": "[parameters('sshPublicKey')]"
}
]
}
}
}
но, очевидно, замените certificateData ключом ssh в вашем хранилище ключей.
Комментарии:
1. Спасибо, но как мастер может подключаться к другим машинам, используя тот же открытый ключ? есть ли способ предоставить машину, указав как открытый, так и закрытый ключ?
2. вы могли бы использовать расширение azure dsc для запуска скрипта, который извлекал бы ключи ssh из хранилища ключей, скажем, с помощью Azure python skd (или azure cli, возможно) для azure. Это возможно, но далеко не тривиально 😉
3. Хорошая идея, у вас есть какие-нибудь ссылки? Я не знаю azure key vault