我的感受
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总结:
.ssh .vscode等以 .
开头的文件都是隐藏文件,需要用ll -a
的形式才能查看。- 通过跳板机连接服务器,不配置port,会选用默认的22(但不是所有的服务器都是22端口,比如在我的问题里,所以这个问题也卡了我一会儿。😂)
netstat -tnlp | grep ssh
查看ssh通信的端口号,再进行配置。 - 利用跳板机连服务器,需要在
./.ssh/confige
中进行proxycommond配置。参考链接:https://blog.csdn.net/maokelong95/article/details/91801944、https://www.taodudu.cc/news/show-3820.html。 - 远程连接没有响应,关闭vscode重新打开还是在自动连,陷入死循环。。原来用
ctr+shift+p
调出控制面板,选择close remote connection
就可以关闭了。 - 配置ssh密钥的时候,需要修改sra文件的权限,好像权限不对也会有问题。参考链接:https://blog.csdn.net/maokelong95/article/details/91801944。
- ssh虚拟隧道的问题?
ssh连接成功后,本地ssh一直在等待远程ssh的建立隧道,但是远程并没有开启建立隧道,所以本地一直处于等待ing。。。。。,将这个选项去掉之后就可以了。
后记
折腾很久,总算是成功了。感谢一直陪伴我的Google搜索(有多不易,大概搜索历史记录才能够明白吧)和许多小伙伴分享的博客。所以我也把自己遇到的问题记录下来了,作为学习笔记,如果有幸,能为遇到相同问题的小伙伴提供一个参考,也是不错的啦。
感悟
学习就是这样的一个过程,当你知道的越多,其实你知道的越少。🤣
自己懂的真的挺少的,只有在实践中才会发现问题,有这样一个机会push我,也是挺不错的!
奥力给!!!