You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将私钥存入Azure Key Vault机密,通过Azure Bastion SSH登录Azure VM

将本地.pem私钥存入Azure Key Vault并用于Azure Bastion登录Linux VM的排查方案

正确操作步骤

先确认是否按标准流程操作,避免基础步骤遗漏:

  • 预处理.pem私钥:如果私钥是加密状态(带密码),先移除加密:
    openssl rsa -in original_encrypted.pem -out unencrypted.pem
    
    用openssl rsa -check -in unencrypted.pem验证私钥格式是否有效。
  • 存入Key Vault:
    • CLI方式:
      az keyvault secret set --vault-name <你的KeyVault名称> --name <机密名称(比如vm-ssh-key)> --file ./unencrypted.pem --content-type "application/x-pem-file"
      
    • Portal方式:进入目标Key Vault → 「机密」→ 「生成/导入」,上传.pem文件,内容类型必须选application/x-pem-file,完成导入。
  • 授权Bastion访问Key Vault:
    • 进入Key Vault的「访问策略」→ 「添加访问策略」,在「机密权限」里勾选「获取」;在「选择主体」中搜索并选择你的Azure Bastion资源对应的服务主体,保存策略。
    • 或用RBAC:给Bastion的托管标识分配「机密用户」角色。

常见失败原因及修复

  1. 私钥格式不符合要求
    • 加密的私钥会导致Bastion无法解析,必须使用未加密版本;如果私钥文件有多余空行、格式损坏,重新生成或修复后再上传。
  2. Key Vault权限配置缺失
    • 检查Bastion是否有读取机密的权限:确认访问策略中已给Bastion主体分配「机密获取」权限,或RBAC角色分配正确。
  3. 机密内容类型错误
    • 上传时未设置application/x-pem-file,Bastion无法识别这是SSH私钥,重新上传并指定正确的内容类型。
  4. Linux VM SSH配置问题
    • 用其他方式(比如用户名密码)登录VM,检查/etc/ssh/sshd_config中PubkeyAuthentication是否设为yes,重启sshd服务;同时确认对应的公钥已添加到~/.ssh/authorized_keys文件中。
  5. Key Vault网络限制
    • 如果Key Vault启用了防火墙,需确保Bastion所在的虚拟网络被允许访问Key Vault,或开启「允许受信任的Microsoft服务访问此Key Vault」选项。

验证步骤

  1. 用CLI检查机密是否可读取:
    az keyvault secret show --vault-name <Vault名称> --name <机密名称> --query value -o tsv
    
    返回的内容应和本地.pem文件一致。
  2. 在Azure Portal中进入目标VM,选择「连接」→「Bastion」,身份验证方式选「Azure Key Vault」,选择对应的Key Vault和机密,尝试登录。

内容的提问来源于stack exchange,提问作者Amit Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 15:35:08