Remote Development 和 Rmate 远程开发配置

Vscode 远程开发神器

Posted by DJMeng on August 30, 2019

前言

  对于刚开始在服务器上进行开发或者觉得使用vim开发效率不高的程序员来说,Vscode上Remote Development插件和Rmate工具可谓是两个远程开发神器。本文将主要分为两部分来详细介绍如何配置使用Remote Development插件及Rmate工具。

正文

  Remote Development插件可以在本地Vscode上直接打开远程服务器上文件夹,并提供一个可视化的界面,在服务器上写代码就像在本地写代码一样方便快捷,服务器上的项目结构、文件信息一目了然,可以大大的提升我们的工作效率。但是目前该插件所能连接的远程服务器仅支持linux系统等x86架构的服务器。对于Tx2等arm64架构服务器尚不支持,若想在Tx2等进行高效开发,可以在服务器上安装Rmate工具配合本地的Vscode,同样可以实现打开远程文件进行编译。虽略逊于Remote Development,但依然可以大幅提升工作效率。ps:Rmate工具不受服务器架构的限制,支持x86架构和arm64架构。

一、Remote Development插件

  首先介绍一下,Remote Development插件在本地和服务器上详细配置情况。

远程服务器配置

  在远程服务器上(Linux 系统),安装ssh-server,直接上代码。

    sudo apt-get install openssh-server

本地安装ssh

  首先,在Window上打开cmd或者Mac上打开Terminal,输入ssh测试自己的电脑上是否安装了ssh-client。如果您电脑上已经安装过xshell等工具,就不需要单独安装ssh了。如果未安装,请确保进行下面操作之前,自行安装好ssh。(备注:如下操作在mac上,windows上需要修改为相应的命令格式即可。)

设置无密码登录服务器

  按照下面的提示在自己的电脑上运行如下三行命令。

    # 生成本地密钥
    ssh-keygen -t rsa -b 4096

    # 将本地公钥上传到服务器,并添加到 authorized_keys 文件中。
    scp %USERPROFILE%/.ssh/id_rsa.pub %REMOTEHOST%:~/tmp.pub  

    ssh %REMOTEHOST% "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat ~/tmp.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && rm -f ~/tmp.pub"

  注意要将上面命令行的变量替换为具体的地址信息。

  %USERPROFILE% : /Users/xxx/

  %REMOTEHOST% :username@192.168.1.xxx

  但是如果您在运行scp命令时出现:REMOTE HOST IDENTIFICATION HAS CHANGED 的错误, 一般情况下,解决方法为:找到 .ssh/known_hosts 文件中,删除这次远程的ip地址,重新scp就可以了。

Vscode上设置

  首先,在vscode上找到并安装Remote Development插件,然后通过快捷键ctrl+shift+p打开设置Remote-SSH:Settings,设置Remote.SSH:Show Login Terminal为true,如下图所示:

配置config文件

  其次,当插件安装完之后,vscode左下角会出现一个绿色的图标(类似 >< 这样的绿色图标),点击选择会在命令窗口弹出几个选项。 选择 SSH | Remote-SSH:Connect to Host。

  接着会弹出:

  一般直接选择第一个,将如下的配置信息加入到config文件中:

    Host server-name           # 远程服务器起名
        HostName 192.168.xx.xx  # 远程服务器地址
        User username          # 远程服务器用户名
        IdentityFile /Users/xxx/.ssh/id_rsa # 修改为您自己电脑的秘钥地址
        Port 22                # 默认端口 22

连接远程服务器

  以上全部配置完成后,点击Vscode左侧栏类似小电脑的图标,您会看到您刚起好的远程服务器名server-name,点击右上角+,进行连接。然后会弹出新的窗口,连接成功。

二、Rmate工具的配置使用

  如果有时候针对非x86架构的服务器或者remote-development插件无法使用的服务器等,可以选择强大的Rmate工具。接下来将介绍该工具配置的具体操作步骤。

  前提您的电脑上已经安装了ssh。

远程服务器安装Rmate

  在服务器上运行如下命令,安装Rmate工具。

    sudo wget -O /usr/local/bin/rmate https://raw.githubusercontent.com/aurora/rmate/master/rmate

    sudo chmod a+x /usr/local/bin/rmate

Vscode上安装Remote Vscode插件

  安装完成后,通过快捷键ctrl+shift+p,如下图所示,启动服务。

设置无密码登录服务器

  可以参照第一部分。

配置config文件

  按照上面第一部分中配置config文件的操作打开config文件,在文件后面添加如下信息。

    Host server-name
        HostName 192.168.xx.xx
        User username
        ForwardAgent yes
        RemoteForward 52698 127.0.0.1:52698  # 这个切忌用localhost
        IdentityFile /Users/xxx/.ssh/id_rsa

连接远程服务器

  打开命令行,输入:

    # 连接远程服务器
    ssh server-name

  连接成功后:输入:

    # 用rmate命令打开文件
    rmate test.py

  之后在本地就可以直接打开一个test.py文件,就可以实时的编译和运行了。

  以上,便是最近我比较觉得很好用的两个工具,推荐给大家。希望该文章可以帮助到您。 如果您觉得文章还不错,可以请我喝杯水….

文章参考:Remote Development -SSH配置实录

注:转载请提前联系作者!