解决方案一:
查找原因
命令 ps ajx | grep vscode
可能会看到一下这堆信息(如果没有大概率不是这个原因导致)
这堆信息的含义:当你使用 vscode
远程登录服务器时,我们远程机器服务端要给你启动一个叫做 vscode server
的进程,都由它来进行服务器和客户端之间信息同步,包括你做的所有文件更新编辑的操作:使用 gdb
调试与各种代码操作。
而我们 vscode
远程登不上机器,可能不是用户自己的原因,可能是有 vscode
它自己的 bug
当 vscode
关闭,这些 vscode server
的进程服务应该也会被关闭(就不会出现上面这坨信息),若没关闭成功就导致出现这坨信息,最终你登录不上
解决方法
命令 ps ajx | grep vscode| awk '{print $2}' | xargs kill -9
目的是,将 vscode server
的进程全部筛选出来,然后通过 awk '{print $2}'
定位这些进程的第二列显示的进程 PID
,通过 xargs kill -9
杀掉这些进程(它们本不应该存在)
学这个方法后面某一天我的远程机器也登录不上去了,用解决方案一直接解决
解决方案二:
查找原因
有一种情况是:vscode
编译器更新速度快于 vscode
下插件的速度,导致 vscode
更新了,相关插件还是旧版本,可能出现版本兼容性问题,就是旧版本插件不适配新 vscode
,此时就需要对这些插件进行一些处理。
解决方法
这种方法开始前,建议你将自己 vscode
上已经配置的所有插件记录下来(因为后面会将这些插件给清空,然后需要重装)
1、使用工具登录你的远程机器(如 xshell
),切换到你对应登录用户的家目录下(即你曾经用哪个用户登录的 vscode
,就到哪个用户下),通常命令 cd ~
切换到家目录下
2、命令 ls -la
:可以找到 .vscode-server
这个目录文件
命令 cd .vscode-server
:可以看到 vscode
的一些配置文件,其中 extensions
就是扩展插件
3、命令 cd ..
:退出当前目录 .vscode-server
命令:rm -rf .vscode-server
:强制删除该目录
目的是:将所有配置插件删除,因为你根本无法知道是哪个插件的兼容性问题,影响到你登录不上
因此需要无差别攻击
4、最后回到 vscode
将插件全部下载回来,重新使用 Remote SSH
插件登录远程服务器,发现就可以成功了
(我就是这样成功的,太久没有用 vscode
,导致以前下载的插件版本更新没跟上 vscode
)