栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

vscode使用ssh远程连接失败(及其他问题合集)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vscode使用ssh远程连接失败(及其他问题合集)

文章目录
  • 1. 常见错误和解决方案
    • 1.1 ERR Request 7 timed out (15000ms)
    • 1.2 ERR Error: WebSocket close with status code 1006
  • 2. 自己看日志找适合自己的解决方案
    • 2.1 确认错误
    • 2.2 搜索解决(需要等待官方debug)
  • 3. 彻底卸载vscode
  • 4. vscode报错
  • 5. Failed to set up socket for dynamic port forward to remote port
    • 5.3 改服务器中ssh的配置 ❌
    • 5.2 删除服务器端的`.vs-code` ❌
    • 5.1 改本地配置文件 ❌
  • 6. 与终端pty主机进程的连接没有响应,终端可能停止工作(重启pty主机)
  • 7. 终端进程"C:WindowsSystem32cmd.exe"启动失败(退出代码:-1)
  • 8.

1. 常见错误和解决方案

去查看自己的错误,

  • 在vscode界面,帮助 -> 切换开发人员工具
  • 如果是windows系统,直接快捷键ctrl+shift+I打开开发者工具。
1.1 ERR Request 7 timed out (15000ms)


ERR Error: Time limit reached,超时错误,15000ms是个参数,可以设置响应等待时间,默认是15s,可以改为其他时间

参考 Stack Overflow:why ssh connection timed out in vscode?

  • 文件-> 首选项->设置
  • 在常用设置中,找到扩展->Remote-SSH
  • 把15s改成更长的时间

另外,也有方法是修改一个配置文件。

依旧是在设置中,搜索ssh,找到 在setting.json中编辑

在这个文件夹中加入:"remote.SSH.useLocalServer": false,,编辑后文件类似下面这样:

{
    "security.workspace.trust.untrustedFiles": "open",
    "remote.SSH.useLocalServer": false,
    "remote.SSH.remotePlatform": {
        "10.71.10.49": "linux",
        "10.70.21.10": "linux"
    },
    "workbench.colorTheme": "Quiet Light",
    "workbench.iconTheme": "office-material-icon-theme",
    "terminal.integrated.windowsEnableConpty": false,
}

如果没什么用的话,说明可能本地和远程服务器之间网可能确实不太好,大部分情况下重连几次就好了

1.2 ERR Error: WebSocket close with status code 1006

在开发者工具里信息如下:

其实在输出->remote ssh中,也会有一些有用的信息,

错误信息为:

Failed to set up socket for dynamic port forward to remote port XXX: Proxy connection timed out. Is the remote port correct?
大概意思是代理超时了。。(应该是vpn有问题?但是mobaxterm连接依然非常顺利)

参考Github:Vscode-issue
一些人选择降级,但是2021年是1.52版本,现在已经1.66了,而且这个问题已经关闭了,应该新版本已经解决了

参考

  • why ssh connection timed out in vscode?
2. 自己看日志找适合自己的解决方案 2.1 确认错误

感谢Github上的issue:Keeps reconnect and reload when Remote SSH with VPN #2565,启发我去看自己的输出信息,确定远程log文件的位置。

使用xshell或者mobaxterm等远程连接工具,去查看上面这个日志文件,例如:

vim /home/user/.vscode-server/.dfd34e8260c270da74b5c2d86d61aee4b6d56977.log

找到其中的报错信息,例如我的是

[15:13:51] [Error: Could not find pty on pty host,   
 at C._throwIfNoPty (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:20:5336),    
 at C.updateTitle (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:20:1676),   
  at Object.call (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:13:8332),   
   at E.onPromise (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:12:4867),    
   at E.onRawMessage (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:12:4262),    
   at /home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:12:3554,    
   at L.invoke (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:8:145),    
   at l.fire (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:8:1856),    
   at process.U (/home/user/.vscode-server/bin/dfd34e8260c270da74b5c2d86d61aee4b6d56977/out/vs/platform/terminal/node/ptyHostMain.js:6:34661),    
   at process.emit (node:events:390:28),    
   at emit (node:internal/child_process:917:12),   
   at processTicksAndRejections (node:internal/process/task_queues:84:21)]

2.2 搜索解决(需要等待官方debug)

进一步搜索vscode remote Error: Could not find pty on pty host, ,根据Github的issue:Could not find pty on pty host #144548。

  • 一模一样的报错信息(自动测试机器人发现的。。)
  • 2022.3.7才分配的错误
  • 报错代码位于这里
  • 修复时间从3月推迟到了4月
  • 等吧
3. 彻底卸载vscode

其实就是两步:

  1. 软件本身的卸载
  2. 一些缓存文件(配置、插件等的卸载)

第一步: 软件本身的卸载,找到安装目录,点击unis000.exe

第二步:找到C:UsersyournameAppDataRoaming中的Code文件夹,删除。(如果没有找到AppData,在查看中勾选隐藏的项目)

第三步:找到C:Usersyourname文件夹,删除其中的.vscode文件夹

参考:

  •  How to uninstall VS Code completely?
  • How to cleanly / completely re-install VS Code on Mac
  • How to reinstall VSCode without losing extensions and user settings
  • Uninstall Visual Studio Code
4. vscode报错

窗口已崩溃(原因:“crashed”,代码:“-1073741819”)

网上常见的解决方式有两种:

  1. 设置成兼容模式
  2. 加大给的内存

根据Github issue:The window has crashed (reason: ‘crashed’, code: ‘-1073741819’) #132945,其实可以通过某个命令打开错误记录,来查看更详细的错误信息。

根据文档:Creating and symbolicating local crash reports

1. 关闭vscode
2. 在命令行输入`code --crash-reporter-directory `,注意是绝对路径,这个路径是用于存放后续生成的故障转储文件(vscode在安装时默认添加到了path,所以可以执行)
   例如:`code --crash-reporter-directory D:packagevscode_dump`
3. 然后这个命令会自动打开vscode,你需要复现自己的错误
7. 然后去看这个文件夹下的`.dmp`文件记录

参考:

  • CSDN博客:解决 vscode运行项目卡死 提示:窗口已崩溃(原因oom)
  • Github issue:The window has crashed (reason: ‘crashed’, code: ‘-1073741819’) #132945
  • CSDN:解决 vscode 窗口故障
  • CSDN:关于Visual Studo Code其中The window has crashed(宽口出现故障)问题!!!
5. Failed to set up socket for dynamic port forward to remote port

网上有很多解决方案,都试了一遍,对我的问题有效的我放在前面,无效的丢在后面了

5.3 改服务器中ssh的配置 ❌

参考VSCode Remote SSH Connection Failed和VSCode连接Linux服务器出错

注意,不要在容器里改,在服务器里改

# vi /etc/ssh/sshd_config

"大概会看到以下内容"
# override default of no subsystems
Subsystem       sftp    /usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
AllowTcpForwarding yes
"将AllowTcpForwarding 前的注释去掉,同时no改为yes"

"然后重启服务"
systemctl restart sshd

改了之后,短暂的连接正常

5.2 删除服务器端的.vs-code ❌

连接远程过程中,其实可以看到输出信息中,包含以下内容

切换到这个文件夹,删除你自己这个连接对应的文件夹,即上面的bin/dfd34e8260c270da74b文件夹,

# 打开会发现这里有很多其他连接的文件,删除自己的就行
/home/user/.vscode-server/bin> ls
6cba118ac49a1b88332f312a8f67186f7f3c1643  8908a9ca0f221f36507231afb39d2d8d1e182702  dfd34e8260c270da74b5c2d86d61aee4b6d56977
7f6ab5485bbc008386c4386d08766667e155244e  c722ca6c7eed3d7987c0d5c3df5c45f6b15e77d1

再次连接,会发现一个同名文件会被创建,还是名为dfd34e8260c270da74b5c2d86。

5.1 改本地配置文件 ❌

根据【Vscode Remote】无法连接:Failed to set up socket for dynamic port forward to remote port

  • ctrl+shift+P,输入Remote-SSH:Settings,或者找到设置中用户->扩展->Remote-SSH。
  • 把Remote.SSH:Enable Agent Forwarding的勾选去掉
6. 与终端pty主机进程的连接没有响应,终端可能停止工作(重启pty主机)

和最开始2. 自己看日志找适合自己的解决方案中报错的问题类似,都是和pty主机有关系。

报错:与终端pty主机进程的连接没有响应,终端可能停止工作(重启pty主机)

对应的英语是:The connection to the terminal’s pty host process is unresponsive, the terminals may stop working.

虽然有些github上的issue显示这个问题已经被修复了,但是感谢Connection to terminal’s pty host process is becoming unresponsive #130320

文件->首选项->设置,搜索Windows Enable Conpty,将勾选去掉即可

参考

  • Github Issue:Terminal pty, not responding #148307
  • Github Issue:The connection to the terminal’s pty host process is unresponsive, the terminals may stop working. #118159
7. 终端进程"C:WindowsSystem32cmd.exe"启动失败(退出代码:-1)


真的是令人无语的问题,根据Exit codes可知:

终端启动失败时提示的退出代码时来自于shell,而不是由VS code生成的。VS code支持很多类型的shell,因此也会有很多种可能的退出代码。
因此在解决问题的时候,需要搜索shell及对应的退出代码。例如:PowerShell 4294901760,或者是cmd 1等。


操作1

参考2021-11-25终端进程“C:WindowsSystem32cmd.exe”已终止,退出代码: 3221225786。

可以将所有终端的使用旧版控制台选项都去掉,包括powershell,cmd,Anaconda Prompt以及Anaconda Powershell Prompt

没啥用。


操作2

参考关于vscode出现终端进程终止,退出代码:1的情况

其认为错误原因是:
由于vscode安装目录的文件名中有空格存在,将其改为其他字符或删除空格
我也确实有这个问题,重新安装之后,报另一个错误。

无效


8.

已安装配置的调试类型’python’,但在此环境中不受支持

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/851887.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号