vscode使用ssh远程连接失败(及其他问题合集) | 您所在的位置:网站首页 › 远程连接显示登录没有成功 › vscode使用ssh远程连接失败(及其他问题合集) |
文章目录
1. 常见错误和解决方案1.1 ERR Request 7 timed out (15000ms)1.2 ERR Error: WebSocket close with status code 1006
2. Error: Could not find pty on pty host2.1 确认错误2.2 搜索解决(需要等待官方debug)
✅ 8. 解决1. 更新vscode版本2. 配置ssh密钥8.2.1 想法来源8.2.2 具体操作
3. 👍 更换默认的ssh工具4. OpenSSH与gitSSH
3. 彻底卸载vscode4. vscode报错5. Failed to set up socket for dynamic port forward to remote port5.3 改服务器中ssh的配置 ❌5.2 删除服务器端的`.vs-code` ❌5.1 改本地配置文件 ❌
6. 与终端pty主机进程的连接没有响应,终端可能停止工作(重启pty主机)7. 其它问题7.1 终端进程"C:\Windows\System32\cmd.exe"启动失败(退出代码:-1)7.2 已安装配置的调试类型'python',但在此环境中不受支持
1. 常见错误和解决方案
去查看自己的错误, 在vscode界面,帮助 -> 切换开发人员工具如果是windows系统,直接快捷键ctrl+shift+I打开开发者工具。 1.1 ERR Request 7 timed out (15000ms)
参考 Stack Overflow:why ssh connection timed out in vscode? 文件-> 首选项->设置在常用设置中,找到扩展->Remote-SSH把15s改成更长的时间![]() 另外,也有方法是修改一个配置文件。 依旧是在设置中,搜索ssh,找到 在setting.json中编辑 如果没什么用的话,说明可能本地和远程服务器之间网可能确实不太好,大部分情况下重连几次就好了 1.2 ERR Error: WebSocket close with status code 1006在开发者工具里信息如下: 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. Error: Could not find pty on pty host 2.1 确认错误感谢Github上的issue:Keeps reconnect and reload when Remote SSH with VPN #2565,启发我去看自己的输出信息,确定远程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月等吧 ✅ 8. 解决最大的收获, https://code.visualstudio.com/docs/remote/troubleshooting#_configuring-key-based-authenticationhttps://code.visualstudio.com/docs/remote/ssh这两个文档里详细介绍了一些ssh连接可能出现的问题和解决方案 1. 更新vscode版本前几天vscode更新了,目前版本是1.67.0 帮助->关于![]() 灵感来源于我在寻找替代方案时,看到VScode远程调试C++工程含X11(局域网)中配置ssh密钥,就可以省去输入密码。 想起来vscode之前一直断连,一直让输入密码,那直接配密钥就可以避开这一环节。 8.2.2 具体操作生成密钥 在windows命令行里输入ssh-keygen,然后会有一些提示,直接三个回车。在C:\Users\yourname\.ssh文件夹中可以看到刚刚生成的密钥id_rsa.pub和私钥id_rsa公钥复制到服务器中 将公钥复制到~/.ssh/authorized_keys文件中测试是否配置成功 直接在命令行里输入ssh [email protected]看是否不需要密码可以直接连接以上内容完成后,就去vscode进行远程连接,一般都会成功 我的到这里其实有个小插曲 由于公司电脑会自动加密,我在将公钥复制到服务器的过程中,不小心把公钥文件做了编辑,因此文件被加密了在vscode的Remote-SSH输出面板中,当时出现了C:\Users\yourname\.ssh\id_rsa invalid format这样的提示。重新生成密钥公钥,复制的时候小心不进行编辑,才成功的 3. 👍 更换默认的ssh工具报错 close - IO is still pending on closed socket. read:0, write:1, io:0000019BC2EE60 更换OpenSSH为gitSSH 在vscode的设置中搜索remote.SSH.path,在弹出的输入框中输入自己git的ssh的路径,例如:D:\software\Git\usr\bin\ssh.exe 设置好之后再去进行远程连接,输出信息中会有类似 [22:59:38.015] Install and start server if needed [22:59:38.018] Checking ssh with "D:\software\Git\usr\bin\ssh.exe -V" [22:59:38.736] > OpenSSH_8.8p1, OpenSSL 1.1.1m 14 Dec 2021 [22:59:38.748] Running script with connection command: "D:\software\Git\usr\bin\ssh.exe"即现在已经使用git的ssh在进行远程连接了 参考: ✅How can I use Windows’ built-in OpenSSH ssh-agent in VS Code, instead of Git bash’s?vscode-remote的Github issue:Can’t connect to Ubuntu: unreachable or not Linux x86_64 - IO is still pending on closed socket #51环境配置–关于vscode-ssh远程连接下openssh与git自带的ssh的冲突解决方法其它:一般有两种解决方案, 一种是修改vscode的Remote-SSH插件的代码,对ssh加入-t参数,但是在我看到的Remote-SSH输出信息中,"C:\Users\huangs2\AppData\Local\Temp\vscode-linux-multi-line-command-XXXX-XXX.sh" | ssh -T -L 127.0.0.1:57124:127.0.0.1:33173 "XXX" bash,已经加入-T参数了,应该是这个问题已经被修复了,故不予考虑另一种方案是使用gitssh来代替默认的openssh,下面着重叙述这个方案查看自己当前系统的SSH版本 使用vscode进行远程连接时,其实会打印出这个信息,类似OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2其实可以直接在命令行里输入ssh -V,也会得到OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2根据PowerShell/Win32-OpenSSH的Github issue: close - IO is still pending on closed socket. read:1, write:0, io:0000023DE45AF900 #1899这个问题可能与当前系统的openssh版本有关。一开始想着如果报错就重启OpenSSH,但是似乎没有输入命令的地方。。参考:VSCode远程连接配置。虽然这个网站看起来不怎么行,但是上面这个文章真的很好,虽然找不到收录的来源。 以下是这篇文章的一部分内容摘录 VSCode远程连接到开发机,调试Python或C++程序时,通过配置本地ssh,理论上每次在VSCode中连接远程机器,输入密码后即可连接。 首先需要确保VSCode中安装了Remote SSH插件。 考虑两种情况: 连接不上,或者经常掉线 不想每次输入密码 对于问题1,考虑安装git-for-windows,并添加Git安装目录usrin到系统PATH环境变量,并重开VSCode以生效(使用git安装后带的ssh.exe替代Win10自带ssh.exe) 对于问题2,考虑配置ssh-key。按照VSCode官方文档:https://code.visualstudio.com/docs/remote/troubleshooting#_configuring-key-based-authentication 由于上述VSCode文档中的操作,是在本机的powershelll/terminal里操作的, 实际中可能执行会出错,例如提示: close - IO is still pending on closed socket. read:1, write:0, io:0000001B883956190 4. OpenSSH与gitSSH参考:让 git 使用 Windows 10 OpenSSH 另外,也可以参考: ✅Using the OpenSSH client included in Windows 10 (1809) as your Git’s SSH client以及Git on Windows: Force use of OpenSSH [closed] 3. 彻底卸载vscode其实就是两步: 软件本身的卸载一些缓存文件(配置、插件等的卸载)第一步: 软件本身的卸载,找到安装目录,点击unis000.exe 参考: 💨 How to uninstall VS Code completely?How to cleanly / completely re-install VS Code on MacHow to reinstall VSCode without losing extensions and user settingsUninstall Visual Studio Code 4. vscode报错窗口已崩溃(原因:“crashed”,代码:“-1073741819”) 根据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:\package\vscode_dump` 3. 然后这个命令会自动打开vscode,你需要复现自己的错误 7. 然后去看这个文件夹下的`.dmp`文件记录参考: CSDN博客:解决 vscode运行项目卡死 提示:窗口已崩溃(原因oom)Github issue:The window has crashed (reason: ‘crashed’, code: ‘-1073741819’) #132945CSDN:解决 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 ❌连接远程过程中,其实可以看到输出信息中,包含以下内容 再次连接,会发现一个同名文件会被创建,还是名为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的勾选去掉![]() 和最开始2. 自己看日志找适合自己的解决方案中报错的问题类似,都是和pty主机有关系。 报错:与终端pty主机进程的连接没有响应,终端可能停止工作(重启pty主机) 虽然有些github上的issue显示这个问题已经被修复了,但是感谢Connection to terminal’s pty host process is becoming unresponsive #130320 文件->首选项->设置,搜索Windows Enable Conpty,将勾选去掉即可 参考 Github Issue:Terminal pty, not responding #148307Github Issue:The connection to the terminal’s pty host process is unresponsive, the terminals may stop working. #118159 7. 其它问题 7.1 终端进程"C:\Windows\System32\cmd.exe"启动失败(退出代码:-1)
终端启动失败时提示的退出代码时来自于shell,而不是由VS code生成的。VS code支持很多类型的shell,因此也会有很多种可能的退出代码。 因此在解决问题的时候,需要搜索shell及对应的退出代码。例如:PowerShell 4294901760,或者是cmd 1等。 操作1 参考2021-11-25终端进程“C:\Windows\System32\cmd.exe”已终止,退出代码: 3221225786。 可以将所有终端的使用旧版控制台选项都去掉,包括powershell,cmd,Anaconda Prompt以及Anaconda Powershell Prompt 操作2 参考关于vscode出现终端进程终止,退出代码:1的情况 其认为错误原因是: 由于vscode安装目录的文件名中有空格存在,将其改为其他字符或删除空格 我也确实有这个问题,重新安装之后,报另一个错误。 无效 7.2 已安装配置的调试类型’python’,但在此环境中不受支持已安装配置的调试类型’python’,但在此环境中不受支持 |
CopyRight 2018-2019 实验室设备网 版权所有 |