无法通过 Visual Studio Code 远程 SSH 连接到 GCP VM

Posted

技术标签:

【中文标题】无法通过 Visual Studio Code 远程 SSH 连接到 GCP VM【英文标题】:Unable to Connect to GCP VM Via Visual Studio Code Remote SSH 【发布时间】:2021-11-14 07:11:09 【问题描述】:

一段时间以来,我一直在尝试使用 SSH 密钥和 vscode 的 Remote-SSH 扩展将 vscode 连接到谷歌云平台中的 vm 实例,但没有成功。

根据教程和文档示例,这是我当前的配置文件(ip 和用户名空白以确保安全):

Host ipaddress
    User myusername
    HostName ipaddress
    IdentityFile ~/.ssh/dev-env-open-ssh-format-privkey 

配置文件位于~/.ssh 文件夹中。当我尝试连接时,我会收到消息。

Could not establish a connection to "ipaddress". 

从输出终端(我似乎无法获取所有文本,因为带有失败消息的弹出对话框不允许我访问复制日志)。但我注意到输出中的这一行

> no such identity: C:\\My Username Has a Space/\\.ssh\dev-env-open-ssh-format-key: No such file or directory
>username@ipaddress: Permission denied (publickey).

根据我的尝试,斜线的方向不同,但消息或多或少保持不变。我不明白为什么错误消息中的斜杠比配置文件中指定的多。

我尝试过的:

从前到后更改斜线 将私钥导出为 ssh 格式(正如我在 code.visualstudio.com/docs 上看到的...) puttyGen 的原始 privKey 指定密钥的完整路径 - C:\Users\My Username Has a Space.ssh\privKey 上面的点带有正斜杠和反斜杠,带和不带双引号。 使用以下方法清除了设置:Remote-SSH: Kill VS Code Server on Host 我尝试将 privKey 直接放在 C 盘的根目录下,以排除用户名中的空间错误。 重新启动本地计算机(绝望) 正在重启虚拟机

什么有效

通过 Putty 连接 VM(使用原始 privKey) 通过 FileZilla 连接到 VM(使用原始 privKey) 注意:以上两种方法都连接到虚拟机,然后提示输入密码。我提供密码然后我就进去了。

我没有收到使用 vscode 输入密码的提示,但我想如果没有 privKey,它不会走得太远。

我正在使用带有 vs code 1.60.1 的 Windows 10。虚拟机正在运行 Ubuntu 20.04 LTS。远程 - SSH v0.65.8。

我不确定与获得帮助相关的其他信息。

【问题讨论】:

【参考方案1】:

对于配置文件,您应该使用以下内容:

Host your-instance-name
HostName external-ip-address
Identity files C:\path\to\your\key\this_is_the_key_name
User the-user-you-choose-for-the-key

您需要使用.pub 格式的密钥(您可以安装Git 并使用ssh-keygen.exe 创建一个密钥),因为如果您使用PuTTy 生成了.ppk 格式的密钥,这不会工作。

另一件事:当您尝试连接到您的实例时,请确保 C:\Users\yourname\\.ssh 中的文件中的 know_host 内部没有以前没有工作过的连接.

如果您成功连接,请告诉我们。

【讨论】:

在 Ubuntu 中什么是等效的 - 你知道吗? @DanErez 在 Ubuntu 中,您可以直接生成 .pub 格式的 ssh-key,因此您只需更改密钥的路径即可。您是否已经尝试过这样做?

以上是关于无法通过 Visual Studio Code 远程 SSH 连接到 GCP VM的主要内容,如果未能解决你的问题,请参考以下文章

“代码 。”命令无法从 mac 终端打开 Visual Studio Code 运算符

无法使用 Visual Studio Code 中的自定义库解析导入

断点无法通过 Windows 10 和 WSL2 上的 Visual Studio Code 在 Chrome 中调试 React 应用程序

我无法从 Visual Studio Code Mac OS 的集成终端运行 nodemon

清除Visual Studio Code的工作区缓存

清除Visual Studio Code的工作区缓存