Copy files over SSH without using SCP?

You can use a FUSE application to mount remote files to the local filesystem. Then you can work on the files directly. When you change them, they will be changed on the remote end automatically.

First make sure you have the fuse kernel module loaded or built-in.

Then you can use either sshfs, which is a standalone application:

sshfs user@hostname: mountpoint # to mount to mountpoint
fusermount -u mountpoint # to unmount

Alternatively, you can use GVFS. If your're in a desktop, just type this into the file manager (or use gvfs-mount in command line):

sftp://user@hostname/

And the filesystem will be mounted to

$HOME/.gvfs/sftp for user on hostname

If however you're not in a desktop, you'll have to start a D-Bus session before you can use gvfs-mount:

$ dbus-launch 
No protocol specified
DBUS_SESSION_BUS_ADDRESS=XXXXXX
DBUS_SESSION_BUS_PID=YYYY
$ export DBUS_SESSION_BUS_ADDRESS=XXXXXX # copy value from above

You can automate the above by a shell script which you source (!).


I don't know of any native method, but there is a patch, "ssh-xfer": http://matt.ucc.asn.au/ssh-xfer/

ssh-xfer is a hackish but handy way of transferring files from remote hosts to your local computer. Firstly, you need to run a slightly modified SSH authentication agent program on your local computer. Patches are available for both OpenSSH and PuTTY . . .

I haven't tried it myself, so no promises here. It looks like you have to install ssh-xfer on the remote host, so that may not work out if you don't own the machine (shell account, etc.)