【问题标题】:Cannot access EC2 instance with VSCode无法使用 VSCode 访问 EC2 实例
【发布时间】:2026-01-15 03:20:12
【问题描述】:

我创建了一个 Ubuntu (18.04) EC2 实例。使用 bash ssh 我可以毫无问题地登录。但是当我尝试相同的 VSCode 时,我遇到了问题。

我在 .ssh/ 中的配置文件有一个类似的条目:

Host MyBox
  HostName IPADDRESS
  IdentityFile C:\Users\myname\mykey.pem
  User ubuntu

我在 VSCode 中选择此选项进行连接,但我得到一个对话框,上面写着 Could not establish connection to "MyBox". Connecting was canceled.

输出窗口显示:

[14:03:27.443] > The authenticity of host 'XXX (XXX)' can't be established.
> ECDSA key fingerprint is SHA256:LALALALALA
> Are you sure you want to continue connecting (yes/no)?
[14:03:27.444] Detected fingerprint confirmation message
[14:03:27.444] Showing fingerprint confirmation dialog
[14:03:29.815] Fingerprint dialog canceled
[14:03:29.816] "install" terminal command canceled
[14:03:29.817] Resolver error: Connecting was canceled
[14:03:29.820] TELEMETRY: {"eventName":"resolver","properties":{"outcome":"failure","reason":"Canceled","askedPw":"0","askedPassphrase":"0","asked2fa":"0","askedHostKey":"1","gotUnrecognizedPrompt":"0","remoteInConfigFile":"1"},"measures":{"resolveAttempts":1,"retries":1}}
[14:03:29.823] ------

在登录 Windows 时显示Initializing VS Code Server。我不确定这是否意味着建立了连接。

【问题讨论】:

  • 您在检查主机密钥指纹时取消了连接。它可能不了解您为命令行存储的正常已知主机,或者无法提示您接受该指纹
  • @Jakuje 你说得对,命令面板区域弹出一个小对话框。我没有看到它,它很快就消失了。现在一切正常。

标签: ssh visual-studio-code


【解决方案1】:

主机 ec2 主机名 ec2-52-91-118-43.compute-1.amazonaws.com
用户 ec2-user 身份文件 ~/pathTopemFile.pem

这就是我在 vscode 上 ec2 主机的配置文件的样子

【讨论】:

    【解决方案2】:

    输出显示:

    [14:03:27.444] Showing fingerprint confirmation dialog
    [14:03:29.815] Fingerprint dialog canceled
    

    我没有注意到命令面板区域中的小对话框。我可能打开了太多 Windows。

    当我接受指纹时,连接就建立了。接受在 known_hosts 中添加一个条目。当然,这意味着对话框不会再次弹出。

    【讨论】:

      【解决方案3】:

      新的 VSCode Remote-SSH 出现错误,这两种方法对我有用:

      1. 恢复到 Remote-SSH 0.49 或之前的版本

      2. 更改 pem 文件的权限以将用户列为唯一所有者并删除其他用户的继承。配置文件 IdentityFile 参数可能会自动从路径中去除冒号和破折号,如果您在 Windows 文件系统中正常输入它为 C:\ 它适用于 IdentityFile 设置。

      经过大量试验和错误,Remote-SSH 再次运行,这次是运行 Ubuntu 的 Amazon EC2。

      【讨论】: