【已解决】内网穿透 + vscode remote SSH初体验

背景

听说vscode remote SSH现在已经完全可用了,一直有给实验室的机器配置一番以实现远程编程的想法,但teamviewer是真的卡,其他方法也不尽如我意。但是遗憾的事情是,实验室的网络架构是NAT,到我的机器上已经不知道分配了多少级路由了,自然而然的,我的机器也是没有公网IP的,不过我想起我学生优惠10元/月的阿里云主机一直还在,并且是有一个公网IP的,那就动手开始内网穿透吧。

更新: 个人而言感觉有些鸡肋,因为我本身主要使用python做科学计算比较多,用这个还不如用jupyter notebook。。。。

材料

  1. 实验室机器一台,系统:ubuntu 18.04 desktop
  2. 云服务器一台, 系统: ubuntu 16.04 server
  3. mac一台。

1. 内网穿透

内网穿透的原理就不介绍了,我使用的是github的开源项目frp.
首先分别在两台Ubuntu机器上下载 frp

$ wget https://github.com/fatedier/frp/releases/download/v0.29.0/frp_0.29.0_freebsd_amd64.tar.gz

下载得到压缩包之后解压它, 名称太长了,顺便改名

$ tar -zxvf  frp_0.29.0_freebsd_amd64.tar.gz
$ mv frp_0.29.0_freebsd_amd64 frp

然后修改服务器的配置文件

$ cd frp
$ vi frps.ini

内容保存如下:

# frps.ini
[common]
bind_port = 7000

接着后台运行frp服务端

$ nohup ./frps -c ./frps.ini &

然后修改客户端(即实验室的机器)的配置,首先进入我们客户端frp解压后的位置

$ cd frp

修改配置

$ vi frpc.ini

内容保存如下

# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

上述配置完成后,我们需要配置阿里云服务器安全组规则,将7000端口和6000端口曝露出来。这一部分如何操作参见阿里云相关文档
注意将协议设置自定义tcp,授权对象可以设置为0.0.0.0/0
服务器的端口曝露出来之后,就可以启动客户端的内网穿透程序了

$ nohup ./frpc -c ./frpc.ini &

这样操作完了之后,就可以在mac上通过以下命令ssh到实验室的机器了

$ ssh -oPort=6000 用户名@服务器的ip

配置ssh免密登录

上面步骤完成之后就可以ssh连接到实验室机器了,但是vscode remote ssh需要用公钥免密登录。
首先在mac上生成我的公钥

$ ssh-keygen

需要输入一些信息,如果想省事,除了邮箱都直接回车也行。

$ vi ~/.ssh/id_rsa.pub

把里面的内容都复制下来,这就是mac的公钥。
接下来需要想办法把公钥复制到实验室机器上,我是先放在服务器上,在用实验室机器连接服务器上然后复制下来的,因为为的服务器也添加了对我的mac免密登录。如果嫌麻烦,你可以用ubuntuPaste (不过用这个传公钥的安全性问题你自行考虑,我是觉得问题不大)

接下来在实验室机器上

$ vi /etc/ssh/sshd_config

确保有以下几行

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile  .ssh/authorized_keys

如果是no就改为yes,如果没有就加上

$ vi .ssh/authorized_keys

添加上刚才从mac上覆制过来的公钥
实验室机器重启ssh

$ service sshd restart

mac上通过以下命令ssh到实验室的机器就无需填写密码了

$ ssh -oPort=6000 用户名@服务器的ip

3. vscode remote ssh配置

确保mac可以免密登录到实验室机器后,接下来就很简单了,就参考这两篇吧
官方文档
知乎上的

4. 体验

等我体验1下之后再来补上。
更新: 个人而言感觉有些鸡肋,因为我本身主要使用python做科学计算比较多,用这个还不如用jupyter notebook。。。。

更多技术干货欢迎关注公众号「HackDev」,一个爱折腾的程序员。

参考

https://hahaha.lifes.ren/2/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章