如何通过Set-AzStorageLocalUser为Azure存储本地用户分配已有SSH密钥?
为Azure存储账户SFTP本地用户分配已有SSH密钥的PowerShell实现
要通过PowerShell将Azure中已创建的SSH密钥分配给存储账户SFTP本地用户,核心逻辑是先提取已有SSH密钥的公钥内容,再传递给本地用户的配置cmdlet,具体步骤如下:
1. 获取已有SSH密钥的公钥内容
使用Get-AzSshKey cmdlet获取目标SSH密钥资源的公钥字符串:
# 替换为你的资源组名称和SSH密钥资源名称 $sshKeyResource = Get-AzSshKey -ResourceGroupName "your-rg-name" -Name "your-ssh-key-resource-name" $targetPublicKey = $sshKeyResource.PublicKey
2. 构造SSH授权密钥对象并分配给本地用户
Set-AzStorageLocalUser的-SshAuthorizedKey参数需要接收PSsshauthorizedkey类型的对象,因此先通过New-AzStorageLocalUserSshAuthorizedKey构造该对象,再执行配置:
# 替换为你的存储账户名称和目标本地用户名 $storageAccount = Get-AzStorageAccount -ResourceGroupName "your-rg-name" -Name "your-storage-account-name" # 构造SSH授权密钥对象 $authorizedKey = New-AzStorageLocalUserSshAuthorizedKey -Key $targetPublicKey -Description "Assigned existing Azure SSH key" # 为本地用户配置SSH密钥 Set-AzStorageLocalUser -ResourceGroupName $storageAccount.ResourceGroupName ` -StorageAccountName $storageAccount.StorageAccountName ` -UserName "your-local-user-name" ` -SshAuthorizedKey $authorizedKey
额外说明
- 如果是新建本地用户时直接分配密钥,将上述代码中的
Set-AzStorageLocalUser替换为New-AzStorageLocalUser,并补充其他必填参数(如HomeDirectory等)即可。 - 确保你的Az.Storage模块版本为最新稳定版,旧版本可能缺少相关cmdlet,可执行
Update-Module Az.Storage升级。
内容的提问来源于stack exchange,提问作者Girish
相关产品推荐
相关产品推荐

