Remote edit with local editor (Linux)

I have a server I can ssh into, and I am also running Ubuntu. How do I edit this remote file using any program I have installed on my local Ubuntu, without copying it to local, editing it, and copying it back?

Thanks!


If it's Ubuntu, then you probably have the full GNOME suite installed, along with GVFS – so you can access sftp:// URLs directly in all apps.

  • Use Places → Connect to Server to connect that server's filesystem as if were a local one.

  • Do the same from command line using

    gvfs-mount sftp://hostname.domain.tld/

While GVFS is specific to GNOME apps, all mounted GVFS locations are accessible by any program via /run/<user>/gvfs (or ~/.gvfs/ in older versions).

KDE programs also support sftp:// via KIO, although they don't have the equivalent of /run/<user>/gvfs.


Try sshfs, a program that allows to mount a remote system accessible via ssh to a local folder.

Install it, create a mount point and execute:

sshfs user@host:remote_dir /path/to/mount_point

Now you can access the remote directory as a local one and you can use your text editor of choice. Moreover, you can use sshfs as an on-demand video/music streaming solution (see this answer).


Example: if you want to mount the directory music of a user called pippo at host pluto in a folder ./pippo_music then execute:

sshfs pippo@pluto:music ./pippo_music

You can also mount the root of the pluto host with:

sshfs pippo@pluto:/ ./pippo_root

To automate this process, add a row in fstab:

sshfs#pippo@pluto:/ /media/pippo_root fuse defaults 0 0

Update on an old question:

KDE supports a FIle over SsH protocol called fish. Basically, you open your file as URL with the fish:// scheme referring to the file. KDE copies the file over locally to a temp file as you edit. Saves and a quit will push the file back to the remote server.

e.g.

kate fish://user@host:/path/to/file.txt

There's a wrapper for non-KDE editors (or any tools):

kioexec other-editor-or-tool fish://user@host:/path/to/file.txt

Remember that you probably have the KDE libs on your machine, even if you run GNOME desktop or something else.


Tramp node in emacs will do this easily: http://www.emacswiki.org/emacs/TrampMode