如何使用本地编辑器操作远程文件?

Productivity Nov 19, 2019

步骤

第一步:服务器端(配置)

编辑文件(如没有,需新建)  $HOME/.rmate.rc

host: localhost
port: 52698
unixsocket: ~/.rmate.socket

第二部:本地机器

在每次需要远程编辑文件之前,需要先执行以下 ssh 命令

ssh -R 52698:localhost:52698 name@server.com

这里在本地机器通过 ssh -R 提供反向端口转发能力,使得服务器可以访问到本地机器。后面总结中我会解释 rmate 的工作原理

第三步:在服务端

执行 rmate /path/file,这是本地 textmate 文本编辑器,便会自动打开这个远程文件,并且在你编辑保存的时候,同步更新远程的文件。

小提示:对于有防火墙的本地机器,auto 配置,有时候是无法回访到的。我们可以为 rmate 增加 --host=localhost 参数, auto
rmate --host=localhost /path/file

总结

我们回顾一下第二步的内容,本地机器会 通过 ssh 建立反向端口转发,将服务器的 52698 端口转发回本地机器,rmate 会通过本地支持的编辑器,将远程文件传送到本地,并调用打开支持的编辑器。同时当你在本地编辑器中编辑文件保存时,编辑器会通过该端口回传到服务器进行保存。

最后,sublime,vscode 这类开源编辑器都可以借助插件和 rmate 进行配合,远程编辑文件。

这里贴出官方使用指南: mate and rmate

Nicholas X.

山穷水复疑无路,柳暗花明又一村