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

通过Terraform生成SSH密钥存为.ppk后Putty无法登录VM如何解决

问题解决方案

根本原因

你直接把Terraform输出的PEM格式私钥改后缀为.ppk是无效的:Terraform返回的tls_private_key.example_ssh.private_key_pem是OpenSSH标准的PEM私钥格式,PuTTY原生只支持自家的PPK密钥格式,必须经过格式转换才能正常使用。

操作步骤

1. 导出合法的PEM私钥文件

  • 执行命令 terraform output -raw tls_private_key,完整复制输出的所有内容,包括开头的-----BEGIN RSA PRIVATE KEY-----和结尾的-----END RSA PRIVATE KEY-----标记
  • 将内容保存为后缀为.pem的文件(例如vm_rsa.pem),Windows系统用记事本保存时,编码需选择UTF-8,不要选择带BOM的UTF-8或者ANSI编码,避免格式校验失败

2. 用PuTTYgen转换为PPK格式

  • 打开PuTTY配套的PuTTYgen工具
  • 点击顶部菜单 Conversions -> Import key,选择上一步保存的.pem文件
  • 确认页面显示的密钥指纹、公钥信息和你的配置一致后,点击 Save private key 按钮,保存得到的就是PuTTY可识别的合法PPK密钥文件

3. 配置PuTTY登录

  • 打开PuTTY,在Session面板填写VM公网IP、SSH端口(默认22)
  • 依次展开左侧菜单 Connection -> SSH -> Auth -> Credentials,在Private key file for authentication选择框里导入刚才生成的PPK文件
  • 回到Session面板保存配置后点击Open,用户名填写azureuser即可正常登录

异常排查点

如果转换后仍无法登录,可以逐一检查以下配置:

  • 确认VM所属的网络安全组/本地防火墙已经放行了22端口的入站规则
  • 登录VM后台检查/home/azureuser/.ssh/authorized_keys文件的内容,和terraform output tls_private_key.example_ssh.public_key_openssh的输出完全一致
  • 确认VM上/home/azureuser/.ssh目录权限为700,authorized_keys文件权限为600,权限异常会导致SSH密钥校验失败

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:18:04