为什么 ssh 连接在 vscode 中超时?

pen*_*ang 28 ssh visual-studio-code

我安装了 git 而不是 openssl 来在 VSCode 中使用 Remote-SSH。但是,在我完成配置文档并尝试连接到远程主机后,我失败了。错误信息如下图所示。错误信息

错误信息:

[11:27:12.631] remote-ssh@0.48.0
[11:27:12.632] win32 x64
[11:27:12.656] SSH Resolver called for "ssh-remote+23321", attempt 1
[11:27:12.659] SSH Resolver called for host: 23321
[11:27:12.659] Setting up SSH remote "23321"
[11:27:12.790] Using commit id "26076a4de974ead31f97692a0d32f90d735645c0" and quality "stable" for server
[11:27:12.798] Testing ssh with ssh -V
[11:27:13.099] ssh exited with code: 0
[11:27:13.100] Got stderr from ssh: OpenSSH_8.1p1, OpenSSL 1.1.1d  10 Sep 2019
[11:27:13.128] Running script with connection command: ssh -T -D 49485 23321 bash
[11:27:13.132] Install and start server if needed
[11:27:13.151] Terminal shell path: C:\Windows\System32\cmd.exe
[11:27:30.151] Resolver error: Connecting with SSH timed out
[11:27:30.178] ------
Run Code Online (Sandbox Code Playgroud)

Yon*_*nti 31

就我而言,问题是由服务器端的身份验证过程过长造成的。

通过将连接超时从 15 秒延长到 30 秒来解决该问题。

指示:

  1. 打开你的 vscode 命令面板(通过键盘快捷键或从视图菜单)。
  2. 搜索远程 SSH:设置。
  3. 滚动直到找到连接超时。
  4. 将其更改为超过 15 秒的持续时间。

  • 我不明白为什么 vscode 首先有一个默认的 ConnectTimeout 值,也不明白为什么它这么低(15 秒)。默认值应该是使用用户配置 SSH 的任何内容(通常或针对该主机)。我要补充的是,SSH 实际上也没有明确的默认值,它使用 TCP 默认值(理应如此)。 (7认同)
  • 对我来说,设置 60 甚至 300 并不能解决问题。 (4认同)

Sne*_*mar 30

我遇到了同样的问题,但上述解决方案不适用于我的设置,但以下设置确实有效:

"remote.SSH.useLocalServer": false
Run Code Online (Sandbox Code Playgroud)

我从github 报告了问题并修复了这个解决方案

  • 我可以补充一点,这可能与在 `~/.ssh/config` 中启用 ControlPersist 选项有关,因为在打开此标志之前我没有遇到任何问题 (2认同)

小智 10

您可以尝试以下方法:

  1. ssh 到您的远程服务器。然后运行以下命令清理服务器上 .vscode-server 文件夹下的 data 文件夹和 bin 文件夹:
  • cd ~/.vscode-server
  • rm 数据/* -rf
  • rm bin/* -rf
  1. 如果步骤 1 不起作用,请通过 ssh 连接到远程服务器并使用以下命令删除整个 .vscode-server 文件夹:

    rm -rf ~/.vscode-server

    请注意,这还将删除您在服务器上安装的扩展。

  2. 在 vscode 中降级远程 SSH 扩展的版本。在vscode界面中查找扩展程序,右键单击它,您将找到“安装另一个版本...”选项。安装当前版本的上一版本。如果不起作用继续降级版本。


小智 6

键 F1 Remote-SSH:设置连接超时:从 15 秒到 60 秒解决我的连接问题


小智 5

我之前也遇到过同样的问题,我通过"terminal.integrated.inheritEnv": false在 ~/.config/Code/User/setting.json 里面删除来解决这个问题


Dru*_*umM 5

我在用户 oreilm49 的这个线程中找到了解决方案: https://github.com/microsoft/vscode-remote-release/issues/1137

在 vscode 设置中:搜索 conpty 并取消选中它


小智 5

我遇到了同样的问题,更改 json 文件中的设置后问题得到解决:

  1. 我去掉了"terminal.integrated.inheritEnv": false里面~/.config/Code/User/setting.json
  2. "remote.SSH.useLocalServer": true在里面添加了~/.config/Code/User/setting.json

经过多次不同的尝试后它对我有用