问题描述
使用Windows平台的VScode,利用Remote-SSH插件连接远程Ubuntu服务器,拉取Gerrit仓库,出现问题如下:
- 远程连接SSH速度特别慢,通常要5分钟以上
- 连接上去之后无法使用git,注意这里的git是
@builtin
插件,不是需要安装的插件,环境很干净 - git显示内容一开始为
当前没有源代码管理提供程序进行注册
,当彻底连接完毕之后,显示内容变为: scanning folder for git repositories...
,并且一直卡顿于此
问题原因
- 第一个问题首先尝试其他的ssh工具,发现连接并没有问题,排除网路连接的问题,聚焦于VScode的插件问题以及VScode本身的问题
- 查看SSH过程中的日志信息,发现:
Failed to write 'remote.SSH.remotePlatform': Error: 没有注册配置 remote.SSH.remotePlatform,因此无法写入 用户设置。
- 定位于连接配置文件,于是:首选项-设置-setting,找到setting.json,查看内容
- 没想到是中文插件的问题???
问题解决
- 离线安装远程的SSH工具,注意版本需要和VScode保持一致,可以在Windows下下载,放置于远程的
.vscode-server/bin
下面,解压,并且重命名为VScode的Commit(一串序列号) - 上一步如果自动安装了的话,可以尝试删除整个
.vscode
文件夹,重新连接远程 - 测试git本身是否有问题,将文件夹设置为安全文件夹:
# 项目目录
git config --global --add safe.directory 'path/to/repo'
# 全部,不推荐
git config --global --add safe.directory *
- 发现不起作用的话,在插件中找到Git,禁用,再启用,同时结合重新连接的操作,看能否成功
- 聚焦于SSH的日志信息,定位
设置无法写入
的问题,重新查询,更改setting.json
文件内容,具体如下:
{
"remote.downloadExtensionsLocally": true,
"remote.SSH.remotePlatform": {
"你的主机名": "linux"
}
}
上面那行不知道是否有用,看到有博客:VSCODE-SSH-REMOTE一直显示【正在连接远程】 连接缓慢提到就加了,没有测试。我之前文件里有另一个主机的名字,看错了以为已经添加了,可能和这个也有关系。
【已测试】上面那句只能避免SSH的LOG报错,卡顿依旧存在;切换为英语之后,不论是否在上面那行,一样不卡顿连接远程服务器
- 打算切换为英文重新查询问题,发现切换为英文之后一切问题都被解决了!!!
参考资料
- Github Issue
- StackOverFlow
- Why vscode don’t recognize my .git folder?
- Can’t connect VS Code to Linux machine for remote development