remote vscode 实现远程开发 史上最精简

remote vscode 实现远程开发 史上最精简_第1张图片

  • ssh
  • rmate
  • vscode insiders 1.34.0-insider

remote vscode 还没正式发布,但是在 VSCode Insiders 版本中可以使用.
本文后面提到的 vscode 都是指 VSCode Insiders

ssh

客户端

安装

sudo apt install openssh-client

生成密钥对,并拷贝公钥到服务器上

ssh-keygen
ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]

服务端

sudo apt install openssh-server

要确认可以公钥登录,不然后面 vscode ssh 连接服务器时,要频繁 ctrl+` 调出集成终端输入登录密码.
更多参考 https://blog.csdn.net/u011714033/article/details/90109945

rmate

rmate 版本众多,这里用 go 版 gomate.

go get -u -v github.com/mattn/gomate

把 GOPATH 目录下的 bin 加入 PATH.确保 gomate 安装成功

$ gomate -h
Usage of gomate:
    -hostname string
        hostname (default "localhost")
    -port int
        port (default 52698)

vscode insiders

安装
下载 VSCode Insiders绿色版并解压到要安装的目录
vscode下 ctrl+shift+x 搜索 Remote - SSH 并安装,搜索 Remote VSCode 并安装,

配置
ctrl+shift+p,搜索 remote-ssh:open configuration 打开 ssh 配置文件 config ,编辑如下

Host fws8uv             
    HostName 192.168.43.201
    User fws
    IdentityFile C:\\Users\\fuwens\\.ssh\\id_rsa-ssh-sfw8uv
    ForwardAgent yes
    RemoteForward -R 42698:192.168.43.201:52698

Host 字段是个名字可以随意起,但最好用字母和数字,像 @ 就会出问题.估计是和 ssh 用户@主机 冲突.
HostName 字段和 User 字段组成 ssh User@HostName.
IdentityFile 字段指定 ssh 私钥 -i IdentityFile.
RemoteForward 字段创建 ssh tunnel -R 42698:192.168.43.201:52698.

效果


    vscode                     ssh tunnel           rmate
    ssh client               <=============>        ssh server
    192.168.43.191:42698                            192.168.43.201:52698
    --------------------                            ---------------------
    客户端                                          服务端

使用

正确安装插件后 vscode 左边边栏多出 Remote SHH 按钮,能打开配置好的远程主机列表.选择要连接的主机,发起连接.
remote vscode 实现远程开发 史上最精简_第2张图片

如果连接不成功, ctrl+` 调出集成终端查看输出信息.
如果 ssh 公钥登录没配置正确,会要求输入服务器登录密码.
如果 ssh config 文件配置有问题,会有错误报告.

第一次连接时,要在服务器端执行一次 rmate

touch testfile
gomate testfile

服务端执行 rmate 后,客户端的 vscode 会打开这个文件,可以输入些内容试试.之后就再也不用执行 rmate 了.

参考

https://code.visualstudio.com/docs/remote/remote-overview
https://linux.die.net/man/5/ssh_config
https://github.com/aurora/rmate
https://blog.csdn.net/a351945755/article/details/21785647
https://code.visualstudio.com/api/advanced-topics/remote-extension
https://macromates.com/blog/2011/mate-and-rmate/
https://ernie.io/2011/12/12/textmate-2-rmate-awesome/

你可能感兴趣的:(vscode,开发环境)