离线安装vscode server以及免密登录
参考:VSCode Remote 报错,无法连接??
背景
代码服务器通常是无网状态,并且普通用户的权限很低,无法在服务器中安装vscode软件,而我们又想要用vscode编辑器,此时应该怎么办?
首先,我们需要在本地安装vscode。
其次,当代码量不大,我们可以考虑用samba的方式,在电脑中创建网络驱动器,然后直接用vscode打开文件夹即可。
但是,当代码量特别大时,并且多人一起办公,这时samba的网络环境就不太稳定,vscode的索引速度就很慢。这时就需要使用vscode自研的remote-ssh插件来连接,也就是在远程服务器安装vscode-server,本地通过remote-ssh连接控制。
vscode-server安装配置过程
1、安装本地vscode
重中之重,本地安装vscode软件,这是开源的,直接官方下载即可。
官方下载链接:vscode官方下载链接
2、下载官方vscode-server插件
下载链接:https://update.code.visualstudio.com/commit:$COMMIT_ID/server-linux-x64/stable
其中的$COMMIT_ID要与本地vscode的commit id相同,这是由于remote-ssh要求本地和服务端的版本号相同
新版vscode-server需要同步安装cli插件,下载链接:https://vscode.download.prss.microsoft.com/dbazure/download/stable/$COMMIT_ID/vscode_cli_alpine_x64_cli.tar.gz
新版server插件的下载链接:https://vscode.download.prss.microsoft.com/dbazure/download/stable/$COMMIT_ID/vscode-server-linux-x64.tar.gz
3、查看vscode本地版本的commit id
打开vscode软件,点击help -> about即可获得commit号,如下图
如图所示,第二步中的链接应该是:https://update.code.visualstudio.com/commit:899d46d82c4c95423fb7e10e68eba52050e30ba3/server-linux-x64/stable
新版以v1.128.0的COMMIT_ID=fc3def6774c76082adf699d366f31a557ce5573f为例:https://vscode.download.prss.microsoft.com/dbazure/download/stable/fc3def6774c76082adf699d366f31a557ce5573f/vscode_cli_alpine_x64_cli.tar.gzhttps://vscode.download.prss.microsoft.com/dbazure/download/stable/fc3def6774c76082adf699d366f31a557ce5573f/vscode-server-linux-x64.tar.gz
4、在服务器创建vscode-server路径
vscode-server路径是自动生成的。在本地vscode中使用remote-ssh登录服务器,由于网络问题不能自动下载vscode-server的相关文件,导致登录失败。但是会生成.vscode-server路径。remote-ssh登录步骤如下:
- 使用快捷键
ctrl + shift + p调出命令窗口 - 选择
Remote-SSH: Connect to Host... - 如果已经设好配置文件,这里选择服务器ip即可。否则,选择
Configure SSH Hosts...进行配置文件 - 选择配置文件,如我的配置配件为:
C:\Users\chao\.ssh\config。其代码如下:
# 目的主机别名,随意设置,便于记忆即可 Host vsys # 目的主机ip HostName192.168.56.25# 用户 User mcpang- 设置remote-ssh插件的配置文件,点击左下角齿轮 -> Settings -> Remote-SSH在Config File中添加刚才的配置文件路径,如下图
- 再进行步骤1、2、3,进行连接登录
5、配置vscode server
首先,清空服务器上的文件夹.vscode-server/bin/COMMIT_ID/,这是第4步登录失败的文件记录,没有什么用,需要删除。
其次,将第2步下载好的server插件(.tar.gz文件)copy到服务器的.vscode-server/bin/COMMIT_ID/文件夹中
然后,使用tar -zxvf (.tar.gz文件名) --strip-components 1解压即可
新版:
server路径为:.vscode-server/cli/servers/Stable-${COMMIT_ID}/server
cli路径:.vscode-server,且需要将cli插件名code->code-${COMMIT}
免密登录
经过上述配置中,已经可以登录到服务器中了,但是登录过程中可能会不断的要求输入密码,因此,为了方便起见,我们需要先设置免密登录。
- 打开cmd,使用dir查看是否有.ssh文件;若没有使用ssh-keygen命令,直接回车到底,则会自动创建.ssh文件,并生成密钥对id_rsa和id_rsa.pub。
- 将公钥id_rsa.pub复制到服务器的.ssh文件夹的authorized_keys中即可,若没有该文件authorized_keys,可手动创建。
最后
本地remote-ssh登录成功,大功告成!