使用本地文本编辑器 Edit-text-files-over-SSH

Mik*_*maa 11 ssh text-editors sftp

我在各种 Linux 和 UNIX 环境中工作。

我想优雅地解决通过SSH编辑远程配置文件的问题。我不想使用终端编辑器(nano),而是想在桌面上的本地文本编辑器(Sublime Text 2)中打开文件。

Cyber​​Duck、WinSCP 和其他各种 SFTP 应用程序可以做到这一点。

在 X11 转发上使用编辑器也被证明是有问题的。使用像 Vim 或 Emacs 这样过时的文本编辑器也不能很好地满足我的需求。他们可以这样做,但我更喜欢使用其他文本编辑软件。

使用 ssh 挂载 (FUSE) 也有问题,除非它们可以按需发生并由远程站点触发。

所以我希望达到的目标

  • 有某种易于部署的 shell 脚本等,我可以将其复制到远程服务器(我们称之为 mooedit)

  • 我在通过 SSH 连接的远程服务器上运行mooedit命令

  • mooedit发送某种信号(通过 SSH(到我的本地桌面)

  • 在我的本地桌面上,这个信号被捕获,它决定了 'a ha! moo 想编辑服务器 X 上文件夹 Y' 中的文件

  • 文件通过 SFTP 传输到本地桌面 (/tmp)

  • 文件在本地桌面上的漂亮 GUI 文本编辑器中打开

  • 当按下 Save 时,本地桌面会注意到文件的变化,SFTP 将生成的文件发送回服务器

问题是:

  • SSH 为此提供了哪些信号机制?

  • 还有其他方法可以触发远程 SSH 文件的本地文本编辑器吗?

lak*_*tak 5

您可以使用rsubrmate通过 ssh 编辑本地 Sublime Text 中的远程文件。

你需要

  • rsub在 Sublime Text 中安装包(使用包管理器)
  • 通过 ssh 转发端口 52698,使用ssh -R 52698:localhost:52698 ...或设置您的配置

    • 创建/编辑~/.ssh/configchmod 600 ~/.ssh/config(以避免权限问题)
    • 添加(将 SERVERNAME 替换为您的服务器,您也可以使用*):

Host SERVERNAME
  RemoteForward 52698 127.0.0.1:52698
Run Code Online (Sandbox Code Playgroud)
  • 连接到您的服务器 ssh
  • rsub在远程机器上安装脚本:

sudo wget -O /usr/local/bin/rsub https://raw.github.com/aurora/rmate/master/rmate
sudo chmod +x /usr/local/bin/rsub
Run Code Online (Sandbox Code Playgroud)

然后您可以rsub file在 ssh 会话中进行操作,它将file在您的本地 ST 编辑器中打开。

与 ST2/ST3 一起使用,您也可以sudo rsub file


Mik*_*maa 0

由于这个问题很老了,但仍然引起人们的关注。

这个问题本身很老,最初是由rmate针对 TextMate / OSX 生态系统解决的。从那时起,出现了一些针对rsub不同文本编辑器的 rmate 实现,例如答案中的 Sublime Text。其中一些是兼容的,有些则不兼容。

我建议使用带有远程 VSCode扩展的Visual Studio Code以及服务器端的rmate 克隆之一。Visual Studio Code 是著名的免费跨操作系统文本编辑器。

这里还有一个用于在服务器端ssh-copy-mate安装rmate 的 bash 脚本。