如何在Windows机器的WebStorm中复用Ubuntu生成的SSH私钥连接远程Linux服务器?
如何在Windows机器的WebStorm中复用Ubuntu生成的SSH私钥连接远程Linux服务器?
我之前也碰到过一模一样的情况,别着急,咱们一步步来排查解决:
1. 先确保私钥文件格式和存放位置正确
你复制的私钥内容绝对不能把所有字符挤在一行,必须严格保留原格式:
- 第一行单独是
-----BEGIN RSA PRIVATE KEY----- - 中间的密钥内容分成多行(和你在Ubuntu上看到的一致)
- 最后一行单独是
-----END RSA PRIVATE KEY-----
然后把这个文件存到Windows的默认SSH目录下:C:\Users\你的用户名\.ssh\id_rsa(如果.ssh文件夹不存在,自己新建一个),这样系统和WebStorm都能自动识别到它。
2. 关键!设置私钥文件的权限(Windows下最容易踩坑的点)
Windows的文件权限默认比较宽松,而SSH协议要求私钥只能被你自己访问,否则会判定为不安全而拒绝使用:
- 右键你保存的
id_rsa文件 → 点击「属性」→ 切换到「安全」标签页 → 点击「高级」 - 点击「禁用继承」,然后选择「从此对象中删除所有继承的权限」
- 点击「添加」→ 选择「主体」→ 找到你当前的Windows用户名,添加进去
- 给这个用户设置「完全控制」的权限,然后删掉其他所有用户/组的权限
- 最后点击确定保存所有设置
3. 检查WebStorm的SSH配置
打开WebStorm,依次进入「Settings/Preferences」→「Tools」→「SSH Configurations」:
- 新建或编辑你的远程服务器配置
- 在「Authentication」区域选择「Private key」,如果你的私钥存到了默认路径,直接选「Default private key files」就行;如果存在其他路径,就手动选择你保存的
id_rsa文件 - 注意:如果原来的私钥设置了密码(passphrase),WebStorm会弹出输入框,一定要输入正确的密码,否则也会提示「Invalid Credentials」
4. 用Windows自带的SSH客户端测试(排除WebStorm的问题)
先别着急找WebStorm的问题,打开PowerShell或者命令提示符,输入以下命令测试连接:
ssh -i C:\Users\你的用户名\.ssh\id_rsa 你的远程服务器用户名@服务器IP地址
- 如果这里提示「Permissions for 'id_rsa' are too open」,说明权限没设置对,回到步骤2重新调整
- 如果提示「invalid format」,说明私钥文件的格式错了,重新复制并确保换行正确
- 如果这里能成功连接,那问题就在WebStorm的配置上,再检查一遍步骤3的设置
5. 可选:转换私钥为兼容格式(针对特殊情况)
如果你的私钥是比较旧的PEM格式(就是你现在这种开头的),有些新版本的SSH客户端可能兼容性不太好,可以用Windows自带的ssh-keygen工具转换一下:
ssh-keygen -p -f C:\Users\你的用户名\.ssh\id_rsa
按提示操作就行,如果原来没有密码,直接按回车跳过设置,这样能确保私钥是标准的OpenSSH格式。
按照这些步骤来,应该就能解决「Invalid Credentials」的问题啦!
备注:内容来源于stack exchange,提问作者Mohsen
相关产品推荐
相关产品推荐

