How do you edit files over SSH?

Coding StyleEditorSshTerminal

Coding Style Problem Overview


I program with eclipse and sometimes use GUI text editors like SciTE or vim. However, I'm at a point in a project that requires me to edit files over a ssh connection in a 80 column SSH window.

Since I have to (* shiver*) sudo vim before I can open the file I'm not sure how to open the file in an editor outside the terminal (that would allow me to see the text wider than 80 columns). If the command line was larger then I guess using straight vim wouldn't be a problem.

I'm at a loss of how to deal with this situation and how I could turn this nightmare into a manageable coding environment.

Coding Style Solutions


Solution 1 - Coding Style

Maybe you should simply mount the remote filesystem to your local machine and then use whatever editor you like. If running a Debian derivative, install sshfs

sudo apt-get install sshfs

and then mount the remote filesystem ( issue on your local machine )

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

Once this is done you can access the code in ~/remote_code w/ any of your GUI tools and without the bandwidth overhead of using ssh -X (however you still need a good connection w/ a low ping time).

PS: When using ssh I can make the terminal as wide as it fits my screen and then use its full width, so I fear I don't completely understand your issue.

Solution 2 - Coding Style

WinSCP is a SSH client ftp-like. The default editor is primitive but can be change.

https://winscp.net/eng/data/media/screenshots/commander.png" height="240"/> https://winscp.net/eng/data/media/screenshots/editor.png" height="200"/>

Solution 3 - Coding Style

There are various options.

You can make the terminal larger. ;)

If you have a graphical environment installed on the machine you are ssh'ing into, you can login with ssh -X (or xdeep-putty if you are on Windows) to enable window forwarding. You can then run your favourite editor on the remote machine, whose graphical output is forwarded.

Finally, you can mount the ssh connection into your file system, using for example fuse (similar options might exist for non-linux operating systems). That allows you to access any file on the remote machine as if it were in your filesystem, with your favourite editor, locally.

Solution 4 - Coding Style

I'm not 100% sure if this works for files owned by root, but if your desktop is KDE & your remote system is Linux (or pretty much any form of *nix), you can get konqueror to access the remote machine using the "fish://" protocol. From there you can open the file from konqueror using kate, or your preferred editor, and konqueror will take care of copying the file to your local machine and copying it back when you save.

Failing which the X11 forward is a good option, but X11 over ssh to remote sites can be slow. "ssh -X -C" compresses the data stream and can give better performance.

Solution 5 - Coding Style

Notepad ++ has a plugin for editing files remotely over ssh. I've used it before, but I definitely prefer Kate on KDE using the fish protocol.

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

Solution 6 - Coding Style

Forward your X11 session to your terminal.

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

This probably belongs on superuser.com.

Solution 7 - Coding Style

You might try the Komodo editor. It has a feature to load a 'remote file' over ssh. It's really convenient.

Solution 8 - Coding Style

Emacs and ange-ftp.

Solution 9 - Coding Style

If you're on Ubuntu, go to Nautilus (file explorer), connect to server (adding sftp:// to the hostname), then voila! You can easily launch gedit to edit your files now.

Solution 10 - Coding Style

On Windows, you can use MobaXterm ( http://mobaxterm.mobatek.net ): it has a built-in SSH client with a very useful "SFTP browser".

As soon as you connect to your remote server using SSH, you will see your remote files displayed in this graphical SFTP browser. Just double-click on your files and you will be able to edit them directly on your remote server through SFTP.

Solution 11 - Coding Style

I use Cyberduck and Sublime Text 2

Solution 12 - Coding Style

FileZilla did the trick for me. Notepad++ can be used with it which is awesome.

Solution 13 - Coding Style

Since sshfs is not supported in WSL at the moment, the tool that worked for me is sshfs-win.

Installation Steps

  1. Go here and click "download winfsp"
  2. Install it
  3. Go here and download the installer
  4. Install it
  5. Open windows explorer and right-click "This PC" > "Map Network Drive..."
  6. Select a drive letter (B:), type in "\\sshfs\[email protected]" and click Finish
  7. Boom, done. Now you can have a B: drive on your computer and just do whatever with those files. Open them with VSCode, delete them, whatever you like

Solution 14 - Coding Style

If you using windows, try Editplus. It's not free but allows you to open files directly over scp. Custom syntax files are coming really handy, too.

Solution 15 - Coding Style

Recent versions of ultraedit do exactly what the OP is asking for elegantly (IDM software, v10 and up support SSH iirc). I do most of my coding remotely like that, been using it for years, works great with no intermediate files etc. Obviously it also does FTP etc too if you're so inclined.

I actually found this page whilst looking for a linux equivalent of ultraedit..

Solution 16 - Coding Style

If you are more GUI-oriented and use one of the more newbie-friendly Linux distros like Ubuntu or Mint, this is another option and does not require any more installations.

You should have nemo as your default file manager. It may not be called "Nemo" on the menu, so go under Help > About of your file manager ("Files" app) to see.

In nemo, go to File > Connect to server, enter your remote machine's details (SSH's default port is 22), and then open the files just like any file on your local machine, with whatever editor you prefer. You can even close Nemo and continue working in your editor.

From the address bar, it seems to be using the sftp protcol.

Just be aware that if your remote host has an inactivity timeout for the SSH connection, this will also prevent you from saving changes in the editor after the timeout has dropped the connection...

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionXeoncrossView Question on Stackoverflow
Solution 1 - Coding StyleGerald Senarclens de GrancyView Answer on Stackoverflow
Solution 2 - Coding Styleh3xStreamView Answer on Stackoverflow
Solution 3 - Coding StylereletView Answer on Stackoverflow
Solution 4 - Coding StyleBruce ClementView Answer on Stackoverflow
Solution 5 - Coding StyleNuclearPeonView Answer on Stackoverflow
Solution 6 - Coding StyleVitor PyView Answer on Stackoverflow
Solution 7 - Coding StyleJALView Answer on Stackoverflow
Solution 8 - Coding StylePatrickView Answer on Stackoverflow
Solution 9 - Coding StyleCardinView Answer on Stackoverflow
Solution 10 - Coding StyleDidierView Answer on Stackoverflow
Solution 11 - Coding StyleegirayView Answer on Stackoverflow
Solution 12 - Coding StyleVShView Answer on Stackoverflow
Solution 13 - Coding StylenullromoView Answer on Stackoverflow
Solution 14 - Coding StyledsomnusView Answer on Stackoverflow
Solution 15 - Coding StyleCodeMonkey303View Answer on Stackoverflow
Solution 16 - Coding StylefrITView Answer on Stackoverflow