MobaXterm 连接成功但 VSCode Remote - SSH 要输密码,核心是密钥文件格式不匹配。 VSCode 对密钥格式、权限和 SSH 配置的要求更严格,而 MobaXterm 兼容性更强。

将 .pem 格式密钥转换为 OpenSSH 格式,用 MobaXterm 自带的 MobaKeyGen 工具最方便,步骤如下(确保你的 .pem 是私钥文件):

具体转换步骤

  1. 打开 MobaKeyGen 工具打开 MobaXterm → 顶部菜单栏 Tools → 选择 MobaKeyGen (SSH key generator),打开密钥生成工具。

  2. 加载现有的 .pem 私钥

    • 点击工具顶部的 Load 按钮(加载);
    • 在文件选择窗口中,右下角 “文件类型” 选择 All files (*)(否则可能看不到 .pem 文件);
    • 找到并选中你的 .pem 密钥文件,点击 “打开”。
    • 此时工具会解析密钥,若弹出 “Successfully imported foreign key” 提示,说明加载成功。
  3. 导出为 OpenSSH 格式

    • 点击顶部菜单栏 Conversions → 选择 Export OpenSSH key(导出 OpenSSH 格式私钥);
    • 弹出保存窗口,自定义文件名(比如 server_openssh,无需加后缀),选择保存路径(建议存在本地 .ssh 目录,方便管理);
    • 点击 “保存”,此时会生成一个 纯 OpenSSH 格式的私钥文件(无 .pem 后缀,内容头部为 -----BEGIN OPENSSH PRIVATE KEY-----)。
  4. 确认转换结果用记事本打开转换后的文件,若头部是 -----BEGIN OPENSSH PRIVATE KEY-----,底部是 -----END OPENSSH PRIVATE KEY-----,说明转换成功。

后续操作(适配 VSCode)

  1. 设置本地私钥权限(关键!VSCode 严格校验权限):

    • Windows:右键转换后的密钥文件 → 属性 → 安全 → 高级 → 删除除当前用户外的所有权限(只保留自己的 “完全控制”)。
    • Mac/Linux:终端执行 chmod 600 /path/to/server_openssh(替换为实际路径)。
  2. 配置 VSCode 的 SSH 配置文件:按之前的方法打开 config 文件,指定转换后的密钥路径:

Host my_server
  HostName 服务器IP
  User 用户名
  IdentityFile C:\path\to\server_openssh  # 转换后的OpenSSH密钥路径
  IdentitiesOnly yes

这样转换后,VSCode Remote - SSH 就能正常识别密钥,不会再提示输入密码了。如果转换时提示 “invalid format”,可能是 .pem 文件损坏或不是私钥,重新获取正确的 .pem 私钥即可。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐