首页 > 解决方案 > 如何从 Azure 中的 SSH 密钥中查找公钥的值

问题描述

有没有办法从天蓝色的 SSH 密钥中获取公钥的值。示例 我想使用我的 SSH 密钥名称获取公钥(ssh-rsa AAAAxxxxxxxxx...)。

标签: azuressh-keys

解决方案


是的!

Azure 门户中生成和存储 SSH 密钥时,它们会被创建并存储为 类型的资源Microsoft.Compute/sshPublicKeys

因此,列出密钥的一种自然方法是在 Azure 门户本身上过滤资源视图。

此外,还有REST API可用于管理这些 SSH 公钥。您可以使用SSH Public Keys - Get API 通过传入密钥名称和它所在的资源组来检索有关 SSH 公钥的信息。

尽管没有可用的 Azure CLI 命令或 PowerShell cmdlet 来管理这些密钥,但你可以使用Invoke-RestMethodcmdlet 通过 PowerShell 调用 REST API。

PS> $Uri = "https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<>rg-name>/providers/Microsoft.Compute/sshPublicKeys/<ssh-key-name>?api-version=2020-06-01"

PS> $Headers = @{}
PS> $Headers.Add("Authorization", "<token>")

PS> $sshkey = Invoke-RestMethod -Method Get -Uri $Uri -Headers $Headers
PS> $publickey = $sshkey.properties.publicKey
PS> $publickey

ssh-rsa AAAA....................................t3vhIK4FAfRDVpaw
xFn2DluJNzAo....................................4FEDtj8IghkhocPO
yIUkCfxBJFIc....................................eidRme+6d2SgfOQd
qR3cyViqbMLL....................................UcIjn3iE9/qWn+bj
gzjhQryL1B0r....................................xCOvV/JhLepGFg/K
ipyt0aZrQISv...................Q/BMuWuD8= generated-by-azure\r\n

希望有帮助!


推荐阅读