vscode远程连接失败
解决方案尝试1
最近通过vscode一直使用腾讯云的服务器作为远程开发环境,以前一直很好用。
直到最近重装了系统之后,发现vscode没法对云服务器进行连接了,即使在远程主机添加了本地的公钥也不行。直接报错:Could not establish connection to…
报错信息中有以下两条重点语句:
Host key verification failed.
过程试图写入的管道不存在。
这是因为vs code在连接和ssh终端连接类似,由于之前连过该ip对应的服务器,vscode本地(win本地)已经保存了该ip对应服务器的密钥。重置服务器当该ip对应的服务器发生变化时,连接的时候发现远程服务器发回来的密钥跟之前的对不上了,就连接失败了,本质上是vscode的阻止行为!不要怪罪远程服务器!
那么解决就需要将原来的密钥删掉。
解决方式
vscode是在win下的客户端,而保存这种连接密钥的路径是:用户
.ssh\known_hosts
我们在win下删掉用户.ssh\known_hosts中的known_hosts文件即可
解决方案尝试2
多次异常退出了服务端,可能导致后续vscode链接服务器时循环输入密码无法连接;
这时候我们需要将服务器端的root根目录~下的.vscode-server文件夹(ls -a可以查看 .开头的是隐藏文件)
将其全部删除:rm -rf .vscode-server
接着重新vscode链接服务器,就好啦!
标题:【VScode】Remote-SSH XHR failed无法访问远程服务器,或者一直反复让你输入密码,但就是进不去。
解决方案尝试3
问题概述
当使用VScode连接远程服务器时,往往需要使用Remote-SSH这个插件。而该插件有一个小bug,当远程服务器网络不佳时容易出现。
在控制台会出现下述语句:
Resolver error: Error: XHR failed at y.onerror (vscode-file://vscode-app/d:/Microsoft%20VS%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:77:1261)
原因与解决方法
原因
该插件在连接远程服务器时,插件会在服务器端自动运行一个脚本。该脚本的主要内容是检查服务器的vscode-server的运行情况,若服务器端不能运行,则会自动下载。而当服务器网络不佳时,下载往往会超时,导致连接失败。
解决方法
懂了报错的原因,那就可以从中找出解决方法。即手动在本地下载安装包,然后手动传到服务器端。这样是可以解决这个问题的,虽然不是很优雅。
步骤
1.通过其他SSH等方式(如:Xshell),进入远程服务器的Terminal。
2.在服务器端,进入下面的目录,获取commit id。
$ ls ~/.vscode-server/bin
2ccd690cbff1569e4a83d7c43d45101f817401dc
在这里,我的commit id就是2ccd690cbff1569e4a83d7c43d45101f817401dc。
3.手动下载出问题的包(tarball),注意下面的COMMIT_ID要替换成自己在上一步得到的commit id。
稳定版下载链接:https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/stable
内测版下载链接:https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/insider
如我的稳定版链接就是:https://update.code.visualstudio.com/commit:2ccd690cbff1569e4a83d7c43d45101f817401dc/server-linux-x64/stable
4.下载后会得到一个vscode-server-linux-x64.tar.gz,将其通过sftp等方式传到服务器上。路径:~/.vscode-server/bin/COMMIT_ID/vscode-server-linux-x64.tar.gz
5.在服务器端进入该路径,解压。
$ cd ~/.vscode-server/bin/$COMMIT_ID
$ tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
6.重新使用VScode进行连接。