Linux

Azure 中有沒有一種方法可以自動創建具有多個密鑰的 authorized_keys 文件?

  • December 6, 2016

我們的團隊正在使用 Azure PowerShell 創建和初始化 Linux VM。我對 Azure 一點也不熟悉,但試圖幫助其他人進行設置。有沒有辦法提供自定義的 authorized_keys 文件並讓 Azure PowerShell 將其放入 ~/.ssh?我們希望這在創建時自動發生。

正如@modo 在評論中提到的,您可以使用“自定義腳本擴展”來實現這一目標。

如果您使用的是 ARM 虛擬機:

$RGName = '<resource-group-name>'
$VmName = '<vm-name>'
$Location = '<location>'

$ExtensionName = 'CustomScriptForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version = '<version>'

$PublicConf = '{
   "fileUris": ["<url>"],
   "commandToExecute": "<command>"
}'
$PrivateConf = '{
   "storageAccountName": "<storage-account-name>",
   "storageAccountKey": "<storage-account-key>"
}'

Set-AzureRmVMExtension -ResourceGroupName $RGName -VMName $VmName -Location $Location `
 -Name $ExtensionName -Publisher $Publisher `
 -ExtensionType $ExtensionName -TypeHandlerVersion $Version `
 -Settingstring $PublicConf -ProtectedSettingString $PrivateConf

如果您使用的是 ASM 虛擬機:

$VmName = '<vm-name>'
$vm = Get-AzureVM -ServiceName $VmName -Name $VmName

$ExtensionName = 'CustomScriptForLinux'
$Publisher = 'Microsoft.OSTCExtensions'
$Version = '<version>'

$PublicConf = '{
   "fileUris": ["<url>"],
   "commandToExecute": "<command>"
}'
$PrivateConf = '{
   "storageAccountName": "<storage-account-name>",
   "storageAccountKey": "<storage-account-key>"
}'

Set-AzureVMExtension -ExtensionName $ExtensionName -VM $vm `
 -Publisher $Publisher -Version $Version `
 -PrivateConfiguration $PrivateConf -PublicConfiguration $PublicConf |
 Update-AzureVM

引用自:https://serverfault.com/questions/818374