Sometimes I find it useful to quickly pipe directory contents over ssh.
scp only allows to copy single files, a good solution is to simply tar a directory up, and pipe the resulting archive to ssh.
$ tar zcf - some_dir | ssh user@host 'tar zxf -'
To extract to somewhere else than
~ you can specify the path with
$ tar zcf - some_dir | ssh user@host 'tar zxf - -C /tmp/'
Note, that the directory you are trying to extract to must exist on the server.
To copy from remote to local, simply do the inverse:
$ ssh user@host 'tar zcf - some_dir' | tar zxf -
$ ssh user@host 'tar zcf - some_dir' | tar zxf - -C /tmp/