Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

最好的远程编辑方案 : SFTP #88

Open
chunpu opened this issue Aug 13, 2017 · 5 comments
Open

最好的远程编辑方案 : SFTP #88

chunpu opened this issue Aug 13, 2017 · 5 comments

Comments

@chunpu
Copy link
Owner

chunpu commented Aug 13, 2017

写代码难免会碰到需要编辑服务器上的文件

传统的做法是 ssh 登录, 然后使用 vim 去编辑文件

这样的问题是太过麻烦, 无法使用像 sublime, vscode 这样强有力的编辑器, 而且传输文件还得用其他命令

之前想过很多方法来远程编辑文件, 比如 ftp, sshfs, samba, rsync, rmate

sftp 最大的优势

sftp 对服务器没有伤害

sftp 属于 ssh, 只要你可以使用 ssh 登录服务器, 就可以使用 sftp, 无需另外在服务器上安装和启动 ftp

这是非常关键的一个优势, ftp, samba, rmate 都需要专门在服务器启动服务, 但很多服务器开发者是没有权限开这样的服务的

而且如果是线上机器的话, 这种服务还要专门做权限控制, 非常麻烦, 因此 sftp 在这方面优势巨大

sublime 的 sftp 工作模式

安装 sftp 插件

对于项目来说 sftp 妥妥应该使用 sidebar 模式, 这种模式可以让我们像编辑本地项目一样编辑远程项目, 可以做项目查找等操作

参考文档在这里

https://wbond.net/sublime_packages/sftp/sidebar#SublimeSFTP

sftp 工作流

  1. 每次打开一个文件, sftp 插件都会自动更新远程文件至本地
  2. 每次保存一个文件, sftp 插件都会自动上传到 remote
  3. 但新文件还是需要我们自己手动右键文件夹
    1. 选择 SFTP/FTP
    2. 选择 Sync Remote -> Local

更复杂 sftp 使用可以参照这里

sftp 的更新是通过对比 local 和 remote 的 改动时间(modification times) 来确定谁是最新的改动的

注意, 直接选择双向同步(Sync Both Directions)是不会删除文件的

samba

sftp 有个缺点是需要手动同步文件, samba 则不需要

但 samba 这种映射文件的方式也有明显的缺点, 如果网络不稳定, 每次保存都会是编辑器卡顿, 因为编辑器分不清自己是在 samba 文件系统还是在本地文件系统上工作

手动同步文件有一个优点是安全, 可控

samba 使用 445 和 139 端口,经常被运营商和平台商干掉,而 ssh 端口不可能被干掉, 之前 samba 还被爆过漏洞

ftp

ftp 远程编辑被众多编辑器或者插件支持

  • Notepad++
  • EditPlus
  • Sublime Text
  • UltraEdit
  • Atom

但需要安装 ftp server 和另外控制权限实在难以容忍

sshfs

windows sshfs 安装过于麻烦

  1. 先安装 dokan
  2. 再安装 win-sshfs

linux 略显简单

sshfs -oIdentityFile=~/.ssh/mykey.id_rsa root@host:/home/public ~/workspace

unmount -f ~/workspace

sshfs 有性能问题

rmate

rmate 需要服务端操作而且只能编辑一个文件, 太傻了, 直接 pass

@yutingzhao1991
Copy link

66666

@fdandan
Copy link

fdandan commented Aug 25, 2017

6666666,试一下

@chunpu
Copy link
Owner Author

chunpu commented Aug 25, 2017

@fdandan 你的 id 太萌了冯蛋蛋

@yutingzhao1991
Copy link

@chunpu 好久没发文了,终于重出江湖了啊

@aihuoye
Copy link

aihuoye commented Aug 2, 2019

@chunpu 请教您一个问题。看到“sftp 属于 ssh, 只要你可以使用 ssh 登录服务器, 就可以使用 sftp”这句话,我想问问,由于我们公司需要加一个代理才能成功ssh到服务器,请问这种情况下,怎么利用sftp实现远程编辑,不知道在sftp中怎么设置这个代理?拜谢!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants