【经验】纯小白,第一次用物理机VScode SSH连接虚拟机VScode失败成功解决。

先介绍一下问题背景,学校课程要求使用RV1126开发一个智能设备,第一节课让我们配环境然后使用交叉编译环境写一个“hello world”在板子上运行。使用正点原子官方资料中的文档一步一步进行配置,到了使用VScode连接虚拟机时死活不成功【ubantu20.04镜像】,从中午12点到晚上8点,历经8个小时,查了无数文档,成功解决,连接成功,下面附图。

## 出现的问题

我出现的问题是:使用Xshell成功通过ssh远程连上了虚拟机,然后进cmd 运行ssh alientek@192.168.35.160也是成功的,但是vscode死活不行。

vscode连接不上还很有特点,它可以输密码,但是会提示,“密码错误,访问不允许”,然后重复输入3次密码后,就报错了。。。

## 尝试过的方法

1. 关闭主机和虚拟机的防火墙,无效。

2. 在github找到一篇贴子
,说是因为版本兼容问题,于是更换remote-ssh为旧版本,无效;更换vscode版本为旧版本,无效。文章链接:[Remote-SSH Bug]: You cannot connect to a Windows server with OpenSSH installed using the Remote - SSH extension · Issue #8929 · microsoft/vscode-remote-release · GitHub

3. 因为提示密码错误,尝试取消密码验证,失败。Vscode远程免密连接Linux虚拟机,并配置C/C++运行环境_vscode远程连接虚拟机中的linux-CSDN博客

4. 按照这个帖子中的方法一步一步排查,无效。【经验】VScode 远程 SSH 连接 Ubuntu 或 TrueNas 出错,Could not establish connection-CSDN博客

5. 开启物理机的openserver服务,无效。

6. 修改虚拟机ssh连接文件,无效。(在etc目录下的一个什么文件。。把允许root用户连接改成yes)

SSH 远程登录报错:Permission denied, please try again. 解决办法_permission denied, please try again. bils(new door-CSDN博客

SSH远程连接报错:Permission denied, please try again.的解决办法【备忘】_permission denied, please try again.-CSDN博客 

7. 删除物理机.ssh目录下的known_hosts,无效。

……上面是一些搜索量比较高的回答,还尝试了很多,这里不一一列举了。

 

## 最终的解决

在查看下面这篇帖子,我突然发现了:

zVS code与虚拟机的linux系统远程连接的SSH配置_vscode 找不到 show login ter-CSDN博客文章浏览阅读1.1k次。1.VSCode安装必要插件2.编辑settings.json在vscode的设置中搜索settings.json添加"remote.SSH.showLoginTerminal": true{ "remote.SSH.showLoginTerminal": true,​ "[json]": {​ "editor.quickSuggestions": { "strings": true }, ..._vscode 找不到 show login terhttps://blog.csdn.net/yuan1325646177/article/details/123975139user竟然是linux下的用户名!而我以为这个地方是可以随便取的字符。。。为了方便管理我特意给他起了个名:RV1126正点原子系统镜像ubantu20.04。好吧,问题找到了,应该解决了吧?不,问题依然存在。将日志丢给gpt4:

好好好,到这里我就已经完全明白了,其实就是这几篇帖子中的问题:

vscode卡在Setting up SSH Host XX:Copying VS Code Server to host with scp-CSDN博客

vscode-server和timed out下载_vscode server下载-CSDN博客

visual studio code - Using "Remote SSH" in VSCode on a target machine that only allows inbound SSH connections - Stack Overflow

而这些帖子我之前 也看了,但是一方面由于不知道user是虚拟机上已有的用户名,改了大概率也不会成功,另一方面是这个手动下载十分不稳定。。。

我下了二十多次才成功2次。

这里有个小坑,上面的解决方案贴中,commit_id是虚拟机的,不要搞错填成物理机的了。下载链接:https://update.code.visualstudio.com/commit:这里替换成你的vscodeID/server-linux-x64/stable



 

可以直接在虚拟机终端输入:cd ~/.vscode-server/ bin

然后ls,复制id。

---------------------------------------------------------------------------

## 感想

坐了1个下午,终于解决了这个问题,心里还是很有成就感的,但是也反映了自己粗心大意以及思维不够敏捷的问题。经过这次debug的过程,我发现gpt真的太强了,如果我早点使用gpt分析日志应该可以大大节省debug的时间,就说这么多,共勉。

  • 25
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
如果VScode突然无法连接到Ubuntu,可能有几个原因。首先,你可以检查你在VScode连接时是否选择了正确的系统类型(Linux)。如果选择错误的系统类型,即使网络修复后,VScode无法识别服务器或虚拟机的系统,导致连接失败。你可以通过点击左下角的设置按钮,搜索"remote platform",并将平台设置为正确的选项来解决此问题。 另外,如果你在使用ifconfig命令时没有看到inet地址,可能是由于你之前使用校园网的拨号连接导致的。这可能会影响VScode与服务器或虚拟机连接。 如果已经弹出要求输入密码的框,但仍无法连接,那么问题可能出在VScode应用程序在服务器或虚拟机上的行为上。你可以按照以下步骤进行排查: . 检查密码是否输入错误。如果密码正确但仍然无法连接,则转到下一步。 2. 如果这是你首次连接或异地、异连接,转到下一步;如果你以前连接过这个服务器或虚拟机,但突然无法连接,请转到下一步。 3. 检查服务器或虚拟机的存储空间是否已满。VScode连接后会安装相关插件,如果存储空间不足,可能导致无法连接。你可以通过终端连接到服务器或虚拟机,释放一部分空间。如果存储空间没有问题,请转到下一步。 4. 检查服务器或虚拟机上是否存在你的用户目录。可以通过使用命令"cd ~"来检查是否有反应。VScode连接后会在默认路径"~/.vscode"下安装相关插件,如果用户目录不存在,你需要手动创建,并将该文件夹的所有者设置为你的用户名(使用"chown"命令)。如果用户目录存在,并且所有者设置正确,请转到下一步。 5. 可能是由于长时间未连接或网络信号较弱而导致自动断开连接。你可以尝试点击Retry按钮重连。如果问题仍然存在,暂时我没有其他解决办法。你可以将错误报告在评论区域给我看一下,我可以尝试提供更多帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值