如何使用本地编辑器操作远程文件?
步骤
第一步:服务器端(配置)
编辑文件(如没有,需新建) $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