Xeoncross
Xeoncross

Reputation: 57194

How do you edit files over SSH?

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.

Upvotes: 80

Views: 145716

Answers (19)

Erich_Zann
Erich_Zann

Reputation: 11

My vim solution:

File: $HOME/.vim/autoload/redit.vim

export def Redit(server: string, f: string)
    exec ":e scp://" .. server .. f
enddef

File: $HOME/.vimrc

command! -nargs=* Redit :vspl | :call redit#Redit(<f-args>)

If you have vim open:

  • go command mode
  • :Redit $USER@$HOSTNAME //path/to/file

Upvotes: 0

Somen Das
Somen Das

Reputation: 486

i wrote a simple shell script to do so get it form https://github.com/KTBsomen/sshedit.git

basically it copy the whole file structure in your local mechine with current date so version controll and backup is automagically done and then runs a watcher for file changes as you change your files it will updated on the server realtime steps to run

sudo ./sshedit.sh

it will install some programm if not found,

then it will ask for host of the ssh connection in a GUI window like 3.23.253.5,

then it will ask for the hostname like ubuntu,

then it will ask for the .pem file it will open a file chooser to select ,

then it will ask for the file path to connect to like /home/ubuntu/,

then it will ask for short code of your code editor like code (for vs code) subl (for sublime text)

change the code as your need and add a pull request

Upvotes: 0

Sergey
Sergey

Reputation: 841

If you work in IntelliJ IDEA, you can use Friendly Terminal plugin instead of the native terminal. It allows to open and edit remote files in IntelliJ IDEA editor. Video

Upvotes: 0

nullromo
nullromo

Reputation: 2647

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

Upvotes: 1

frIT
frIT

Reputation: 3285

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...

Upvotes: 1

VSh
VSh

Reputation: 478

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

Upvotes: 2

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 [email protected]:/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.

Upvotes: 117

CodeMonkey303
CodeMonkey303

Reputation: 11

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..

Upvotes: 1

NuclearPeon
NuclearPeon

Reputation: 6049

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

Upvotes: 5

Didier
Didier

Reputation: 600

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.

Upvotes: 3

Cardin
Cardin

Reputation: 5487

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.

Upvotes: 3

egiray
egiray

Reputation: 1209

I use Cyberduck and Sublime Text 2

Upvotes: 2

h3xStream
h3xStream

Reputation: 6621

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

Upvotes: 29

Patrick
Patrick

Reputation: 362

Emacs and ange-ftp.

Upvotes: 3

JAL
JAL

Reputation: 21563

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

Upvotes: 3

Bruce Clement
Bruce Clement

Reputation: 71

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.

Upvotes: 7

dsomnus
dsomnus

Reputation: 1401

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.

Upvotes: 1

relet
relet

Reputation: 7009

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.

Upvotes: 10

Vitor Py
Vitor Py

Reputation: 5190

Forward your X11 session to your terminal.

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

This probably belongs on superuser.com.

Upvotes: 3

Related Questions