如何通过 SSH 编辑文件?

Posted

技术标签:

【中文标题】如何通过 SSH 编辑文件?【英文标题】:How do you edit files over SSH? 【发布时间】:2011-03-25 08:26:12 【问题描述】:

我使用 Eclipse 进行编程,有时使用 SciTE 或 vim 等 GUI 文本编辑器。但是,我正处于一个项目中,需要我在 80 列 SSH 窗口中通过 ssh 连接编辑文件。

由于我必须 (* shiver*) sudo vim 才能打开文件,所以我不知道如何在终端外的编辑器中打开文件(这样我就可以请参阅超过 80 列的文本)。如果命令行更大,那么我想直接使用 vim 不会有问题。

我不知道如何处理这种情况以及如何将这个噩梦变成一个可管理的编码环境。

【问题讨论】:

我不太明白你的问题。是否要在终端中编辑文件(通过 ssh 连接)? 我实际上没有得到我的问题。我尽力解释了这个问题,我希望有人能提供答案。基本上,我需要编辑只能通过 SSH 使用的文件——在终端内编辑它们并不能削减它。我想在适当的 GUI 编辑器中编辑它们 - 但仍使用 SSH 连接进行保存/打开。 你的一些答案(“这将使我看到超过 80 列的文本”、“允许我使用它的真棒终端,它允许调整大小”)让我想知道:你在 SSH-ing在 Windows 命令提示符里面? (ew!)我必须推荐更好的东西,因为当你被困在 Windows 环境中时:“PuTTY”:chiark.greenend.org.uk/~sgtatham/putty 【参考方案1】:

将您的 X11 会话转发到您的终端。

http://dragonwall.net/xdeep-putty.html

这可能属于 superuser.com。

【讨论】:

【参考方案2】:

有多种选择。

您可以将终端放大。 ;)

如果你在 ssh 进入的机器上安装了图形环境,你可以使用ssh -X(或者如果你在 Windows 上使用 xdeep-putty)登录以启用窗口转发。然后你可以在远程机器上运行你最喜欢的编辑器,它的图形输出被转发。

最后,您可以将 ssh 连接挂载到您的文件系统中,例如使用 fuse(非 Linux 操作系统可能存在类似选项)。这允许您使用您喜欢的编辑器在本地访问远程计算机上的任何文件,就好像它在您的文件系统中一样。

【讨论】:

+1 是的,使用 FUSE 安装并使用您最喜欢的编辑器进行编辑效果很好。【参考方案3】:

如果您使用 Windows,请尝试 Editplus。它不是免费的,但允许您直接通过 scp 打开文件。 Custom syntax files 也非常方便。

【讨论】:

【参考方案4】:

也许您应该简单地将远程文件系统挂载到您的本地机器上,然后使用您喜欢的任何编辑器。如果运行 Debian 衍生产品,请安装 sshfs

sudo apt-get install sshfs

然后挂载远程文件系统(本地机器上的问题)

mkdir ~/remote_code
sshfs $USER@remote.example.com:/home/$USER/code ~/remote_code

完成此操作后,您可以使用任何 GUI 工具访问 ~/remote_code 中的代码,而无需使用 ssh -X 的带宽开销(但是您仍然需要良好的连接和较短的 ping 时间)。

PS:使用 ssh 时,我可以将终端设置为适合我的屏幕的宽度,然后使用它的全宽,所以我担心我不完全理解你的问题。

【讨论】:

我使用的 windows 在所有有用的东西上都很糟糕(减去 Adob​​e),切换到 Ubuntu VM 让我可以使用它的很棒的终端,它允许调整大小!所以现在我将只用 vim 编辑文件,因为我现在可以让讨厌的换行消失了。我也会考虑挂载文件系统! 很高兴听到您已经有了解决问题的方法。在使用带有 Ubuntu 的 VM 时,sshfs 应该可以按照您的意愿工作。如果您想坚持使用 Windows,您可以安装 Cygwin (cygwin.com) 提供的工具,提供功能更强大的终端 + 外壳和漂亮的 ssh 客户端等。 刚刚完成了 sshfs 的设置,我对此非常满意。尝试查看保险丝,但我无法弄清楚。【参考方案5】:

我不能 100% 确定这是否适用于 root 拥有的文件,但如果您的桌面是 KDE 并且您的远程系统是 Linux(或几乎任何形式的 *nix),您可以让 konqueror 访问远程使用“fish://”协议的机器。从那里您可以使用 kate 或您喜欢的编辑器从 konqueror 打开文件,konqueror 会负责将文件复制到您的本地计算机并在您保存时将其复制回来。

X11 转发失败是一个不错的选择,但是通过 ssh 到远程站点的 X11 可能会很慢。 "ssh -X -C" 压缩数据流,可以提供更好的性能。

【讨论】:

您可以在 KDE Open File 对话框中执行此操作(例如在 Kate 中),方法是按 Ctrl-L 并输入 fish://user@host:path-to-directory【参考方案6】:

您可以试试Komodo 编辑器。它具有通过 ssh 加载“远程文件”的功能。真的很方便。

【讨论】:

【参考方案7】:

Emacs 和 ange-ftp。

【讨论】:

【参考方案8】:

WinSCP 是一个 SSH 客户端ftp-like。默认编辑器是原始的,但可以更改。

【讨论】:

是的,我经常在 SciTE 中使用它。 您可以通过选项 -> 首选项 -> 编辑器 -> 添加(指向您的 N++ 安装)将 Notepad++ 设置为默认编辑器。然后单击向上按钮,直到 Notepadd++ 位于列表顶部。【参考方案9】:

我使用 Cyber​​duck 和 Sublime Text 2

【讨论】:

Sublime 挂在 sftp 上 :(【参考方案10】:

如果您使用的是 Ubuntu,请转到 Nautilus(文件资源管理器),连接到服务器(将 sftp:// 添加到主机名),然后瞧!您现在可以轻松启动 gedit 来编辑您的文件。

【讨论】:

【参考方案11】:

在 Windows 上,您可以使用 MobaXterm (http://mobaxterm.mobatek.net):它有一个内置的 SSH 客户端和一个非常有用的“SFTP 浏览器”。

当您使用 SSH 连接到远程服务器后,您将看到您的远程文件显示在此图形 SFTP 浏览器中。只需双击您的文件,您就可以通过 SFTP 在远程服务器上直接编辑它们。

【讨论】:

【参考方案12】:

Notepad ++ 有一个通过 ssh 远程编辑文件的插件。我以前用过它,但我绝对更喜欢使用 fish 协议的 KDE 上的 Kate。

http://www.inmotionhosting.com/support/website/ftp-client-setup/connect-ftp-notepad-plus

【讨论】:

但它可以与 SCP 而不是 FTP 一起使用吗? FTP 大多已过时,因为它会明文泄露您的密码...... 它支持SCP,不只是FTP,只要你指向私钥文件,它就可以使用私钥。但它不会识别 .ssh/config 设置,因此您必须输入您的用户名并在单独的选项卡上启用私钥文件。【参考方案13】:

ultraedit 的最新版本完全符合 OP 的要求(IDM 软件、v10 及更高版本支持 SSH iirc)。我的大部分编码都是这样远程完成的,多年来一直使用它,在没有中间文件等情况下工作得很好。显然,如果你愿意的话,它也可以做 FTP 等。

我实际上是在寻找与ultraedit 等效的Linux 时发现了这个页面。

【讨论】:

【参考方案14】:

FileZilla 为我解决了这个问题。 Notepad++ 可以和它一起使用,非常棒。

【讨论】:

很高兴它可以做 SCP,而不仅仅是 FTP。 FileZilla 不做 SCP。【参考方案15】:

如果您更面向 GUI 并使用对新手更友好的 Linux 发行版之一,如 UbuntuMint,这是另一种选择,不再需要安装。

您应该将 nemo 作为您的默认文件管理器。它在菜单上可能不叫“Nemo”,所以到文件管理器(“文件”应用)的Help > About 下查看。

nemo 中,转到 File > Connect to server,输入远程计算机的详细信息(SSH 的默认端口是 22),然后像打开本地计算机上的任何文件一样使用任何编辑器打开文件更喜欢。您甚至可以关闭 Nemo 并继续在您的编辑器中工作。

从地址栏看,好像是使用sftp协议。

请注意,如果您的远程主机有 SSH 连接的不活动超时,这也会阻止您在超时断开连接后在编辑器中保存更改...

【讨论】:

【参考方案16】:

由于目前 WSL 不支持 sshfs,所以对我有用的工具是 sshfs-win。

安装步骤

    转到here并点击“下载winfsp” 安装它 转到here 并下载安装程序 安装它 打开 Windows 资源管理器并右键单击“这台电脑”>“映射网络驱动器...” 选择驱动器号 (B:),输入“\\sshfs\debian@10.13.100.36”并点击完成 砰,完成。现在您可以在您的计算机上拥有一个 B: 驱动器,然后对这些文件执行任何操作。用 VSCode 打开它们,删除它们,随便你

【讨论】:

这很好用。你是山羊! 成功了。谢谢你。我最终进入了一个子目录。您知道我们如何连接到父目录吗? 很遗憾我不知道。文件服务器可能只是在顶层托管子目录。

以上是关于如何通过 SSH 编辑文件?的主要内容,如果未能解决你的问题,请参考以下文章

从 SSH 会话到远程机器,如何在本地机器上的 Vim 会话中打开文件

使用 root 用户通过 SSH 上传,无法在 cPanel 中编辑文件

如何修改Linux远程端口/如何修改ssh端口?

sudo如何在Ubuntu上使用Emacs编辑本地文件?

如何修改Linux远程端口/如何修改ssh端口

在 Linux 上编辑远程文件的快速方法是啥?