使用本地文本编辑器通过 SSH 编辑文本文件

使用本地文本编辑器通过 SSH 编辑文本文件

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

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

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

使用编辑器代替 X11 转发也存在问题。此外,使用 Vim 或 Emacs 等过时的文本编辑器不能很好地满足我的需求。它们可以做到这一点,但我更喜欢使用其他文本编辑软件。

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

我希望实现

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

  • 我跑穆伊迪特我通过 SSH 连接连接的远程服务器上的命令

  • 穆伊迪特通过 SSH 向我的本地桌面发送某种信号

  • 在我的本地桌面上,这个信号被捕获,并确定‘啊哈!moo 想要编辑服务器 X 文件夹 Y 上的文件’

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

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

  • 按下“保存”后,本地桌面会注意到文件中的变化,然后 SFTP 将结果文件发送回服务器

问题是:

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

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

答案1

您可以使用反向rmate通过 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

  • 使用以下方式连接到您的服务器ssh
  • rsub在远程机器上安装脚本:

sudo wget -O /usr/local/bin/rsub https://raw.github.com/aurora/rmate/master/rmate
sudo chmod +x /usr/local/bin/rsub

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

与 ST2/ST3 配合使用,您也可以sudo rsub file

答案2

这是一个老问题,但目前还没有明确的答案。然而,你没有提到来自哪桌面您要编辑的环境? 您曾提到 WinSCP;显然是 Windows 程序,而 Cyber​​duck 是 Mac 程序。

假设您使用 Mac 工作;虽然备受推崇的 BBEdit 不如 Sublime 和之前的 TextMate 那么“性感”,但它仍然拥有其他编辑器所没有的一些功能。

就像在程序内部直接从 ssh 和 ftp 服务器打开和写入文件一样。我从版本 5 左右就开始使用此功能,到现在已经 13 年了。好几代以前了,在“现代”编辑器中仍然不可用。

http://www.barebones.com/products/bbedit/ (没有任何关联,只是自 1993 年以来的一个快乐用户

答案3

我想优雅地解决编辑远程配置文件的问题...还有其他方法可以触发远程SSH文件的本地文本编辑器吗?

使用类似网页管理工具. 无论是现有模块或者创建一个为了您的目的。


更新:

可以让 Apache 提供一个 HTTPS 页面(通过后端脚本),在文本区域中显示文本文件,并使用(全部都是文字启动任何本地文本编辑器。这显然需要注意安全问题。

答案4

因为这个问题虽然很老了,但仍然引起关注。

这个问题本身由来已久,最初是由rmate适用于 TextMate / OSX 生态系统。从那时起,已经有少数 rmate 实现,例如rsub针对 Sublime Text 的实现(如答案中所述),适用于不同的文本编辑器。其中一些兼容,一些不兼容。

我建议使用Visual Studio 代码远程 VSCode延伸和rmate 克隆之一在服务器端。Visual Studio Code 是著名的、免费的、跨操作系统的文本编辑器。

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

相关内容