记多种远程开发环境搭建过程和坑

  • 远程机器环境:Debian 10.6

Visual Studio Code - Remote SSH

远程机器ssh服务端搭建

参考:debian系统下安装ssh服务sshd_config

  1. 安装ssh服务端

    apt-get install openssh-server

  2. 配置ssh(配置文件/etc/ssh/sshd_config)

  3. 重启ssh服务

    service ssh restart

使用Remote SSH插件连接远程机器

  • 先确保本地机器有ssh客户端,在使用之前可以在命令行测试一下连接
  1. 安装Remote SSH插件

  2. 修改配置文件

    1.png

    2.png

    参考ssh_config

  3. 连接到远程机器,远程机器将会自动安装 VSCode-Server,安装目录为 ~/.vscode-server

遇到的坑#1

Bad owner or permissions on C:\Users\USER/.ssh/config

Github Issue

该 Issue 下的一个解决方法

  • 将配置文件路径写到插件设置中即可

    3.png

Docker部署Code-Server

安装方法较多,这里使用 Docker CLI 进行安装,一个脚本直接部署

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/bin/bash
docker run -itd --rm --name code-server \
-p 8080:8080 \
-v "$HOME/project:/root/project" \
-v "$HOME/.vscode-server/extensions:/root/.local/share/code-server/extensions" \
-u "root" \
-e "PASSWORD=yourpassword" \
codercom/code-server:latest \
/bin/bash \
&& \
docker exec code-server \
code-server \
--bind-addr 0.0.0.0:8080 \
--auth password

部分参数原因解释

  • -itd

    主要说明 -d,因为容器需要后台运行

  • --rm

    在容器退出后删除容器,由于需要保存的文件目录(如代码)等已经映射到主机了,不需要担心文件保存的问题

  • -v

    两个 -v 参数分别映射项目目录和上文 VSCode-Server 中安装的插件,这样可以使得插件能够一致(此处忽略兼容性问题)。注意如果用户不同, -v 映射的路径是不一样的

  • -u

    这里直接使用 root 权限,由于 .local/ 目录是由 root 所有,而插件目录 extensions 在其下,因此若想映射主机插件文件夹到此处就必须要 root ,使用其他用户会遇到权限问题。使用 root 可能导致的一个问题是:project 目录及其文件将由 root 所有,主机也需要 root 才能更改文件

  • -e PASSWORD=yourpassword

    由于 code-server 只允许在环境变量或配置文件中设置密码,不能直接传 --password 参数设置密码

  • --bind-addr

    监听地址及端口,注意要和容器开放的端口一致

使用效果

  • 插件一致效果

    4.png

  • 项目路径一致效果

    5.png

遇到的坑#2

权限问题均在终端有显示
部分问题在上文参数解释中已说明

  • 网页访问返回 500

    权限问题

  • 插件没有和主机上的插件一致

    1.权限问题

    2.文件夹映射不正确