离线环境下仅使用vscode remote ssh方式远程连接服务器操作指南
1.vscode配置
- 由于vscode的跨平台的特点:vscode既可以安装在windows,也可以安装在Linux,也可以安装在macOS。下面的操作全都是在Linux(CentOS)上进行的
- remote ssh插件需要在客户端以及服务端都需要安装,如果是是连外网状态,配置好网络后,可以直接使用。
- 如果是离线状态,则需要自己下载vscode的客户端插件和服务端插件,然后放置在Linux的合适位置。
- vscode的代码编辑器需要安装的插件是:
2.安装步骤
-
第一步:首先在Linux上安装vscode客户端代码编辑器
在vscode官网上下载:链接,
下载完毕后,使用rpm -ivh code-1.51.1-1605051791.el7.x86_64.rpm进行安装,安装过程中依赖的包,需要配置公司内部的镜像yum源进行下载,我在安装过程中依赖一个libXScrnSaver-1.2.2-6.1.el7.x86_64.rpm这个包,但是公司镜像源没有,我就从Centos下载的官方二进制包,链接
图中的链接放到浏览器中就可以下载:安装:rpm -ivh libXScrnSaver-1.2.2-6.1.el7.x86_64.rpm
到此位置vscode应该安装完毕 -
第二步:给vscode编辑器安装Remote-SSH插件:ms-vscode-remote.remote-ssh-0.56.0.vsix
(1)首先需要安装Remote-SSH插件在vscode客户端代码编辑器上,需要从Visual Studio | Marketplace中去搜索下载,
下载链接,如果是C/C++的开发,最好再下载一个ms-vscode.cpptools-0.29.0.vsx插件工具,以及MS-CEINTL.vscode-language-pack-zh-hans-1.51.2.vsx简体中文翻译插件工具
(2)将ms-vscode.cpptools-0.29.0.vsx工具在windows本地进行解压,然后压缩成ms-vscode.cpptools-0.29.0.zip文件上传至服务器的/root/.vscode/extensions这个目录下
接着新建目录,eg:mkdir ms-vscode-remote.remote-ssh-0.56.0,解压ms-vscode.cpptools-0.29.0.zip,将其中的extensions下的内容拷贝到ms-vscode-remote.remote-ssh-0.56.0目录中去,最后重启vscode客户端即可,此时vscode中应该可以看到安装好的remote ssh插件。
其他插件的安装方式类似,如果有错误请看vscode客户端界面的错误
-
第三步:vscode服务端的配置
(1)在客户端使用remote ssh方式连接服务器,以此来获取commit id
该config文件的内容,大致如下,都是可配的,其他选项自己配置尝试
Host 100.19.14.217
HostName 100.19.14.217
port 22
User root
- 免密登录参考:VsCode Remote SSh开启免密登录
输入:ssh root@192.168.122.155或者ssh -p 22 root@192.168.122.155
192.168.122.155为服务器的ip,root为服务器的用户
在vscode中打开:查看->输出,打开下面的remote-ssh,这里是vscode客户端的输出信息,commit id以及报错以及使用的日志在这里会输出,从这里我们可以获取commit id。
将commit id放到这个链接中:https://update.code.visualstudio.com/commit:commit id/server-linux-x64/stable
(2)eg:https://update.code.visualstudio.com/commit:6ab598523be7a800d7f3eb4d92d7ab9a66669390/server-linux-x64/stable
(3)清空/root/.vscode-server/bin/6ab598523be7a800d7f3eb4d92d7ab9a66669390下目录的内容
(4)将下载下来的vscode-server-linux-x64.tar.gz文件放到/root/.vscode-server/bin/6ab598523be7a800d7f3eb4d92d7ab9a66669390中下面(6ab598523be7a800d7f3eb4d92d7ab9a66669390这个id应该与vscode客户端看到的commit id应该是对应的)
(5)在这个目录下解压vscode-server-linux-x64.tar.gz,tar -xvzf vscode-server-linux-x64.tar.gz --strip-components 1
(6)所有工作做完,重启vscode客户端,右键下方,然后进行connect,会提示有2种方式,这2种方式随意
- 注意:连接过程中注意报错输出日志,如果报错了要按照日志进行百度等方式处理,这里列一下我做的配置改变,如果能直接使用,则不需要修改
因为remote ssh使用的是ssh,所以更改基本上都是/etc/ssh/sshd_config文件
AllowTcpForwarding yes打开
PermitRootLogin yes打开
上面这么做的一个好处是,只要一台服务器配置成功,其他服务器都不用配置了,都是可以直接用。
3.简单的使用方法说明
-
配置完成后,在vscode中点击文件->打开文件夹来进行目录选择,只能通过绝对路径的方式修改目录
-
配置完成后,还可以有一个终端,用来操作服务器
-
只要配置完,就可以使用该vscode客户端连接其他服务器了,该服务端的配置会被自动分发到别的服务器中
4.vscode免密登录服务器配置
Client:Win
Server:ubuntu
vscode的remote ssh的配置文件(C:\Users\wangji\.ssh\config)如下:
Host 192.168.229.12
HostName 192.168.229.12
User root
IdentityFile "C:\Users\wangji\.ssh\id_rsa"
ServerAliveInterval 60
由Win的git的cmd得到私有-公有密钥对
在git命令行使用ssh-keygen命令,得到C:\Users\script.wang\.ssh\id_rsa的公钥id_rsa.pub;
将其拷贝至ubuntu的cat ~/.ssh/authorized_keys(文件没有则新建该文件即可)
5.vscode使用普通用户登录远程ubuntu服务器配置
客户端:win10
服务器端:ubuntu
- (1)使用Ubuntu系统添加新的普通用户方法添加新一个新用户jiwangreal
- (2)在ubuntu的testuser下创建一个ssh私有密钥对,然后重启sshd服务
ssh-keygen -t rsa -C "jiwangreal@163.com"
sudo service sshd restart
- (3)将win10的公有密钥的内容写入至ubuntu的authorized_keys
ssh-copy-id wangji@xxx.xxx.xxx.xxx---最好这么使用,因为ssh相关的权限配置问题很蛋疼
ssh-copy-id失效的情况下。使用:
/home/jiwangreal/.ssh/authorized_keys
打开,然后将公有密钥填进去
- (4)vscode的remote ssh配置如下,或者直接使用点下面的+号也行
# Read more about SSH config files: https://linux.die.net/man/5/ssh_config
Host jiwangreal
HostName 192.168.79.135
User jiwangreal
#IdentityFile "C:\Users\1\.ssh\id_rsa"---可以不需要
#ServerAliveInterval 60
Host root
HostName 192.168.79.135
User root
#IdentityFile "C:\Users\1\.ssh\id_rsa"
#ServerAliveInterval 60
- (5)注意:ubuntu的sshd_config文件链接,若还是不能免密登录,可以使用链接中的sshd_config文件替换原有的sshd_config文件
记住要先备份哦
cp -f /etc/ssh/sshd_config /etc/ssh/sshd_config_bak
5.参考
- VS code的linux服务器端的离线安装教程,主要进行参考,该方法将vscode客户端安装在了windows10而已,但是我这边完成后,总是不会稳定,所以没采用
- 参考的blog:
官方文档可以直接从vs code获取,
VSCode 远程开发 remote development SSH 模式 | Windows 版
VS Code Remote 远程开发配置,其中cmd的操作可以完全在vs code的终端上操作
Windows下使用CMD/Powershell通过SSH协议远程连接Linux服务器