use remote-ssh in vscode

Update 2019-11-07

经社团同学提醒: remote-development 插件套装如今已经不再只支持 vocode insider 了, 撒花 ~~
使用指南参考 知乎专栏文章 : 使用vscode进行远程炼丹


背景

最近正在做操作系统的实验. 编译linux 0.11的内核需要linux环境.

我的主机是windows, 虚拟机是ubuntu16.04 的server版. 所以一开始的时候我先是尝试在共享文件夹中工作.

但是因为它的Makefile中使用了同一个单词但是不同大小写的两个文件名来区分两个文件(这个习惯非常不好!)而windows貌似不支持仅通过大小写区分文件. 于是在共享文件夹中make总是失败. 于是不用共享文件夹.

那就有如下几种解决方案:

  1. 在linux中工作
    那就只能用vim了. 但是因为经常需要同时修改多个文件. 而这种情景下vim的体验实在太糟糕(也可能是因为我太菜).
  2. 新建一个桌面版的虚拟机
    浪费硬盘空间, 还得重新配环境. 只能作为最后的备选方案
  3. 使用vscode远程开发环境
    虽然遇到了挺多的坑. 但是最终还是成功了. 分享一下.

正文

环境需求

  1. windows端装有open-ssh, 并添加到了PATH环境变量中
  2. linux端装有ssh server
  3. Vscode insider. (以为这个远程开发环境目前还在测试阶段(2019-06-07). 所以如果要用的话需要安装insider版的vscode. )

过程

配置linux端

  1. 流程:
    1. 在windows下使用如下命令生成密钥 ssh-keygen.exe -t rsa 密码为空即可. 然后就可以在 C:\Users\用户名\.ssh 这个文件夹中找到``id_rsaid_rsa.pub` 两个文件(之后使用ssh 登录的时候就不需要用 -i 显示地声明密钥).
    2. id_rsa.pub 上传到linux服务器中
    3. 如何在linux上添加公钥可以参考 https://www.cnblogs.com/Hi-blog/p/9482418.html
  2. 成功指标:
    在windows的命令行中执行 ssh user@host 即可登录linux服务器.
    注意: 没有用 -i 声明密钥! 至于为什么之后会说

配置vscode

  1. vscode 安装拓展


    remote development extension
  2. 连接linux端:


    connect to host
  3. 第一次需要新建一个配置文件


    new config file
  4. 配置文件格式如下:


    config format

    Host是主机名, 一个配置文件中可以添加多个主机. 使用过Host进行区分.
    HostName是ip地址
    User 是用户名.

  5. 一个坑
    我一开始是按照官网 上给了配置文件的参考格式

    官网的参考格式

    编写配置文件的. 其中IdentityFile就是私钥的路径. 但是一直连不上服务器. 然而我用ssh -i 使用这个私钥是可以连到服务器上的. 也不知道是哪儿出现了问题. 这也是之前成功指标的意义. 那样就可以省略这个参数了.

  6. 保存好配置文件后再次 connect host:


    connect again

    就可以看到之前配置的Host了

  7. 单击即可.


    success

    之后就可以在windows端远程编辑linux中的文件了.

如有疏漏或者疑问. 欢迎在评论区指出交流.

参考:
https://www.youtube.com/watch?v=rh1Ag41J6IA
https://www.cnblogs.com/Hi-blog/p/9482418.html
https://code.visualstudio.com/docs/remote/ssh

你可能感兴趣的:(use remote-ssh in vscode)