丝滑的远程开发体验

1,287 阅读3分钟

以下示例环境:Mac 连接 Linux 虚拟机

Remote - SSH 是微软开源的一款 VsCode 插件,用于连接服务器,提供远程开发调试等。

坑: VsCode支持的linux CentOS最低版本是 7.0, 6.0需要升级 glibc 以及 libstdc++ 两个库。这里附上升级指南

VsCode 环境配置

VsCode 下载 Remote - SSH 插件,下载完成后左边有一个小电脑的图标。

01.png

点击小图标进去之后点击加号新建一个远程连接

WechatIMG105.png

ssh username@服务器地址

默认输入密码连接

如果发现有以下弹窗,证明需要升级glibc 以及 libstdc++, 或者将CentOS版本升级到7.0+。

WechatIMG103.png

这里我们使用免密登陆

首先到 ssh 文件下看有没有 id_rsa 以及 id_rsa.pub 密钥对。 如果没有执行命令 ssh-keygen -t rsa 创建密钥对。

创建成功后需要将公钥拷贝到服务器(ssh-copy-id提供将一个公钥拷贝到远程机器的authorized_keys当中) 这一步会验证一次密码。之后每次登陆就不需要密码啦。

cd ~/.ssh
ls -al
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub username@服务器地址

执行完命令后,可以登录服务器看一下在 .ssh/authorized_keys 文件中,已经有我们的公钥了。

第一次连接时间会有点久,远程机器需要初始化相关配置文件。

这里相当于是在服务器上下载了新的VsCode,也就是说你本地所有的VsCode配置,以及Vscode插件都需要重新下载或者同步过来。

到这里已经成功了一半。我们的VsCode已经能正常连接远程服务器了。

接下来我们还需要在服务器上配置相关开发环境。

服务器相关配置

这里默认都是使用root用户操作

Git

首先VsCode的git相关插件,需要高版本git才能支持,而CentOS 默认的 git 版本较低,这里需要删除,手动下载最新版本git。

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.31.1.tar.gz // 下载
tar -xvzf git-2.31.1.tar.gz // 解压
cd git-2.31.1 // 进入目录
mkae // 编译
make install prefix=/usr/local/git // 安装
echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/profile // 添加环境变量
source /etc/profile // 重新执行

其中 make 命令有可能会报错,执行以下命令后在make

yum install libcurl-devel
yum install openssl-devel
yum install expat-devel

另外我们还需要将服务器的公钥配置在 gitlab 的ssh keys中,方便我们拉取push代码。

进入到自己的工作目录生成密钥对。

cd

ssh-keygen -t rsa -C "你的邮箱地址"

连续回车之后,将生成的id_rsa.pub文件内容拷贝到 gitlab。

克隆好项目之后,使用 VsCode 打开文件就可以开始愉快的开发啦~

端口转发(Port Forwarding)

我们在服务器运行的前端开发环境,在本地电脑直接访问不到,需要做端口转发。

1、可以使用nginx做反向代理,访问nginx就可以了

2、使用 Termius 配置 Port Forwarding

3、Remote - ssh 自带端口转发功能,打开VsCode终端,在tab列表里有一个端口按钮,就是用来做端口转发的。