如何从Azure Key Vault证书获取合规SSH公钥并通过Bastion连接Azure VM
如何获取Azure要求的合规SSH公钥(从Key Vault证书转换)
核心问题
Azure VM重置密码页面要求的SSH公钥格式为 ssh-rsa <base64公钥内容> <可选注释>,直接从Key Vault下载的CER/PFX证书提取的公钥需要格式转换才能符合要求。
分步解决
1. 从证书文件提取PEM格式公钥
- 如果是PFX格式证书:
执行以下命令提取公钥到PEM文件(需要输入PFX的保护密码):openssl pkcs12 -in your-certificate.pfx -nokeys -clcerts -out public-key.pem - 如果是CER格式证书:
直接转换为PEM格式:openssl x509 -in your-certificate.cer -out public-key.pem -outform PEM
2. 转换为Azure兼容的SSH公钥格式
使用ssh-keygen工具将PEM公钥转换成标准SSH格式:
ssh-keygen -f public-key.pem -i -m PKCS8 > azure-ssh-key.pub
3. 调整并使用公钥
打开生成的azure-ssh-key.pub文件,内容会自动以ssh-rsa开头。你可以自行修改末尾的注释部分(比如改成your-vm-username@your-domain),然后将整行内容复制到Azure VM重置密码页面的SSH公钥输入框即可。
注意事项
- 确保本地环境安装了OpenSSL和ssh-keygen工具(Linux/macOS默认预装,Windows可通过Git Bash、WSL或OpenSSL官方包安装)
- 公钥的注释部分仅用于标识,不影响SSH认证的有效性
内容的提问来源于stack exchange,提问作者François MENTEC
相关产品推荐
相关产品推荐

