vscode + remote ssh + linux [血泪史]

我的感受

2020-12-3 我总算了弄出来了!!!✌

对于实习生小白的我来说,哪是一步一个脚印呀,简直就是一步一个坑,一个坑就是一个大bug。一直以来,本人就是装软件非酋体制,其他人一直点“next”就装好了,能用了,但是我总是会遇到各种各样奇葩的问题,但也是因为这样,奇奇怪怪的知识点又增加了。🤔
哈哈哈,记录以一下我这次的心酸血泪史。🤣🤣

根本目标

  • 用vscode的remote-ssh插件实现服务器连接,方便远程开发和代码调试。

  • 设备/服务器
    • 我的笔记本 pc
    • 服务器 A(有root权限)
    • 服务器 B (只有watch权限)
    • 跳板机 C

服务器A、B必须通过跳板机C才能连接,跳板机需要pc通过内网连接。


遇到的问题

1. vscode的 remote-ssh连接失败

==配置的步骤,参考链接https://zhuanlan.zhihu.com/p/68577071==但是除此之外,我又遇到了hin多其他问题。


坑一:试图写入的管道不存在
  • win10自带的ssh似乎不行

google很多次,原来时win10在安装的时候就自带了ssh,vscode会自动调用本地的ssh,这样有时候调用冲突就会报错:
方式1. 装openssh;方式2. 装git,用git的ssh;方式3. 直接修改Windows的ssh的默认环境变量

解决方法:我最后用了【2+3】避免vscode调用冲突,修改环境变量! 解决我问题的链接 :https://blog.csdn.net/weixin_42096901/article/details/105193366


坑二:The remote host’s architecture is not supported

相同问题链接:
https://github.com/microsoft/vscode-remote-release/issues/3129
https://github.com/microsoft/vscode-remote-release/issues/2639

解决了【管道不存在】的问题,又开始下面这个问题,google了很久才知道,大概是在vsc进行远程连接初始化的时候,需要向写入一些配置文件,但是服务器端的sed包版本较低,就会出现bug。

解决方法: 用普通的ssh,登录到远程服务器上,执行yum update sed将sed进行升级!!!
在这里插入图片描述


坑三:用yum安装的时候 no named yum

我知道CentOS是用yum install ,ubuntu使用apt-get install,居然报错没有yum,我突然有点质疑服务器到底是什么版本的了。google之后发现,是因为:yum需要使用python2.x,但是又重新装了python3.x,原始yum配置文件没有更改,调用了3.x,所以会出错。

解决方法:修改yum的文件头部为【安装的 】python 2.x:
#修改yum文件 vi /usr/bin/yum
将文件头部的 #!/usr/bin/python
改为 #!/usr/bin/python2.6.6

参考链接:
https://blog.csdn.net/hqzxsc2006/article/details/47952857
https://blog.csdn.net/love666666shen/article/details/75194053


坑四:VS Code Remote SSH Connection not working

类似问题链接:
https://stackoverflow.com/questions/64034813/vs-code-remote-ssh-connection-not-working

解决了sed升级的问题,连接了半天还是没反应,google了很久,发现可能是两个原因:1.remote-ssh-0.55版本不行,需要降版本;2.之前的尝试的不成功连接,在服务器 ./.vscode中写入的信息也不完整,需要删除之后重新连接(重新链接会生成新的./.vscode文件)。

解决方法:我尝试将版本进行降级、升级、各种level都试了一遍,似乎这个不是版本的问题;最后在服务器上rm -rf ./.vscode好像有用。


坑五:ssh连接的时候

坑六 断开之后再次连接不停retry…

在这里插入图片描述在这里插入图片描述

我也不知道为什么会出先这样的情况,🤷‍♀️难道是我从place_1换到place_2之后ip发生了变化,导致之前用ssh生成的密钥对解析不出来?但是我在place_2也是用VNP接入到place_1的内网中,分配的地址应该是一样的呀!

解决办法:因为之前都连接成功过,所以我坚信自己能成功。ssh到服务器删除了./.vscode文件,同时删除了本地./.ssh/known_hosts的文件,重新连接,成功了!!


坑七:一直在setting up SSH tunne

眼看就要成功了,初始化也结束了,但是一直停在ssh通道的建立这。原因:

相同问题及解:https://blog.csdn.net/qq_40775973/article/details/110295657

解决方法:vscode配置 remote-ssh配置中,将Remote Service Listen On Socket配置中的勾勾去掉。(不要选择),参考下面的第6条。👇


坑八:能进行remote-ssh,服务器的系统版本也有要求

参考连接https://www.cnblogs.com/fundebug/p/vscode-remote-development.html
关键点截图
在这里插入图片描述

服务器A是CentOS7,可以正常连接,服务器B是CentOS6,连接失败,需要对其进行升级到7及其以上。还有一些需要升级的包,按照他的报错进行对应升级就行了。

因为我没有对B进行升级的权力(“等级森严”🤣),所以这如何对系统版本进行升级可以参考:https://www.cnblogs.com/yanglang/p/10760490.html


坑九:samba服务的安装

因为我没办法对服务器B的版本进行升级,然而我的数据又在B上,所以只能想着把B的数据传到A上,再进行处理。but A和B之间不能通过ssh进行连接,必须要通过跳板机。。。。。。。。(问了同事,他们是这样跟我解释的)后来问了一个同事,说是安装一个samba服务就行。

🤷‍♂️哈哈哈 ,我连是啥都不知道,赶紧去Google一下,于是又从我的“事务”中新建了一个分支“学习samba”,突然get到写笔记的快乐,之后应该也会写一个学习samba的笔记叭😝


还有一些小tips总结:

  1. .ssh .vscode等以 . 开头的文件都是隐藏文件,需要用ll -a的形式才能查看。
  2. 通过跳板机连接服务器,不配置port,会选用默认的22(但不是所有的服务器都是22端口,比如在我的问题里,所以这个问题也卡了我一会儿。😂)netstat -tnlp | grep ssh查看ssh通信的端口号,再进行配置。
  3. 利用跳板机连服务器,需要在./.ssh/confige中进行proxycommond配置。参考链接:https://blog.csdn.net/maokelong95/article/details/91801944https://www.taodudu.cc/news/show-3820.html
  4. 远程连接没有响应,关闭vscode重新打开还是在自动连,陷入死循环。。原来用ctr+shift+p调出控制面板,选择close remote connection就可以关闭了。在这里插入图片描述
  5. 配置ssh密钥的时候,需要修改sra文件的权限,好像权限不对也会有问题。参考链接:https://blog.csdn.net/maokelong95/article/details/91801944在这里插入图片描述
  6. ssh虚拟隧道的问题?
    ssh连接成功后,本地ssh一直在等待远程ssh的建立隧道,但是远程并没有开启建立隧道,所以本地一直处于等待ing。。。。。,将这个选项去掉之后就可以了。
    在这里插入图片描述

后记

折腾很久,总算是成功了。感谢一直陪伴我的Google搜索(有多不易,大概搜索历史记录才能够明白吧)和许多小伙伴分享的博客。所以我也把自己遇到的问题记录下来了,作为学习笔记,如果有幸,能为遇到相同问题的小伙伴提供一个参考,也是不错的啦。

感悟

学习就是这样的一个过程,当你知道的越多,其实你知道的越少。🤣
自己懂的真的挺少的,只有在实践中才会发现问题,有这样一个机会push我,也是挺不错的!
奥力给!!!

  • 28
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
VSCode是一款轻量级的跨平台代码编辑器,它支持通过SSH远程连接到远程服务器进行开发和调试。使用VSCode+SSH远程调试可以方便地在本地编辑代码,并在远程服务器上进行调试。 下面是使用VSCode+SSH远程调试的步骤: 1. 安装VSCode:首先需要在本地计算机上安装VSCode编辑器,可以从官方网站下载并按照指引进行安装。 2. 安装Remote - SSH插件:在VSCode中,点击左侧的扩展图标(四个方块),搜索并安装"Remote - SSH"插件。 3. 连接远程服务器:在VSCode中,点击左下角的“远程资源管理器”图标,选择“连接到主机...”,然后选择“添加新的SSH主机...”。在弹出的输入框中,输入远程服务器的SSH连接信息,包括主机名、用户名和密码或私钥等。点击连接按钮,VSCode将会尝试连接到远程服务器。 4. 打开远程文件夹:连接成功后,VSCode会显示远程服务器上的文件列表。选择要打开的文件夹或项目,点击打开按钮。 5. 配置调试环境:在VSCode中,点击左侧的调试图标(类似于虫子),然后点击顶部的齿轮图标,选择“添加配置”。选择适合你的编程语言的调试配置模板,比如C++、Python等。根据需要修改配置文件中的参数,比如调试命令、工作目录等。 6. 开始调试:在VSCode中,点击左侧的调试图标,选择你刚刚配置好的调试配置。然后点击顶部的绿色播放按钮,开始调试。VSCode将会在远程服务器上启动调试器,并在本地显示调试信息。 这样,你就可以在本地使用VSCode编辑代码,并在远程服务器上进行调试了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值