如何使用PuTTY生成的密钥连接远程服务器?VSCode Remote Explorer加载PPK密钥提示格式无效的解决方案
解决VSCode Remote Explorer无法识别PuTTY .ppk密钥的问题
刚好踩过这个坑!VSCode的Remote SSH扩展依赖的是OpenSSH格式的密钥,而PuTTY生成的.ppk是它自家的专属格式,直接用肯定会弹出「Invalid Format」错误。下面给你两种简单的转换方法,以及后续的配置调整:
方法一:用PuTTYgen图形界面转(小白友好)
如果你已经装了PuTTY,那肯定自带PuTTYgen工具:
- 打开PuTTYgen,点顶部菜单栏的File > Load private key,找到你的
C:\Users\user\.ssh\private.ppk文件(注意要在文件类型下拉框选「PuTTY Private Key Files (*.ppk)」才能看到),打开它。 - 加载完成后,再点菜单栏的Conversions > Export OpenSSH key。
- 选好保存路径(建议还是放在
C:\Users\user\.ssh\目录下),命名成private_openssh(不用加后缀,或者加.pem也没问题),然后点保存。要是弹出“要不要无密码保存”的提示,根据你原来的密钥有没有设置密码选就行。
方法二:命令行转换(适合爱用终端的同学)
如果你已经把PuTTY的工具目录加到系统PATH里了,直接打开cmd或者PowerShell输命令就行:
puttygen C:\Users\user\.ssh\private.ppk -O private-openssh -o C:\Users\user\.ssh\private_openssh
参数解释一下:
-O private-openssh:指定输出的是OpenSSH格式的私钥-o:后面跟着转换后密钥的保存路径
调整VSCode的SSH配置
转完密钥后,把你原来的SSH配置改一下,把IdentityFile换成转换后的那个密钥路径:
Host ###.##.##.### HostName ###.##.##.### User <user> Port 22 IdentityFile C:\Users\user\.ssh\private_openssh
最后验证一下
重启VSCode或者刷新Remote Explorer面板,再尝试连接。如果你的密钥原来有设置密码,会弹出输入框让你输,输完就能正常连上服务器啦。
另外提个小细节:转换后的OpenSSH密钥要注意权限,Windows下右键文件→属性→安全→高级,确保只有你当前登录的用户有读取权限——不然SSH客户端可能会因为权限太宽松拒绝用这个密钥哦。
内容的提问来源于stack exchange,提问作者Shadow Walker
相关产品推荐
相关产品推荐

