Update 2010I've found Unison, which is better than either of the copy programs previously mentioned.
On the initiation side, I've found Unison to work only with SSH Secure Shell client because of the way it spawns ssh and starts a comm link on the local client computer.
On the server side, freeSSHd seems to be a good all-around Windows SSH server however when a Mac OSX client calls, somehow the authentication process hangs. Therefore, I sync between Mac/Windows by initiation on the Windows end and letting the Mac be the SSH server.
Update 2013 - Inability to initiate Unison from a Mac to a Windows XP computer is a bug in freeSSHd. When I switched to Bitvise's WinSSHD, all works well.
Update January 2010A brute force attack from the outside world, trying 100s of different usernames into my SSH port, convinced me to switch to a non-standard port away from Port 22 and remove simple password authentication. Read more at Alternate SSH port on Mac OS 10.6 .2. You can also read more about Removing password access to SSH server on Linux Mandriva 2008 and Mac OS 10.6 .2''
Finding SSHA friend stood up SSH technology and invited me to access his computer from a remote location. The invite snowballed into an afternoon of learning.
An SSH server on my Mandriva 2006.0 machine allows a command line login and then if I bring up a GUI interface, say konqueror, it works fine. My friends' computer was stood up as a file server, so it didn't have many GUI programs. A few X-Windows graphics seem to work, but nothing was interactive. I was mostly stuck with command line utilities.
Looking to transfer some bulk files back and forth, I stumbled across the putty, a free SSH (and telnet) client that runs in the Windows environment. Putty consists of a half dozen or so executable files, run from the command line. Some allow you to double click to a GUI. Here are the two I found useful.
pscp -unsafe -p -r -P 13 increa at 63.78.xx.xx:/etc/* c:etc
-p --uh forgot what this parameter did.
-r causes recursion into sub directories.
-P 13 causes the program to use port 13 rather than the default.
increa at 63.78.xx.xx is the ssh host computer.
/etc/* is the Linux directory to copy from.
c:etc is the windows directory to copy to.
-unsafe causes pscp to accept filenames that it didn't ask for.
Regarding the options "-unsafe", if the ssh host is compromised or has mal intents, it could send anything and pscp will dutifully save it, even writing over the filename if it previously exists. This option is required when doing global copies because the file name you ask for (which includes an asterisk) won't match any of the filenames you actually get.
Sadly, this command aborts when a file is come across for which you don't have read permissions. So... I tried another command:
psftp -P 13 -v -l increa 63.78.xx.xx
-P 13 causes the program to use port 13.
-v causes verbose output, listing each file as it's transferred.
-l uh... I don't remember.
increa is the ssh username.
63.78.xx.xx is the ssh host I'm try to reach.
This command happily copied dozens of files, but it wasn't so fast, so I eventually went to bed. At about 2:04 in the morning, the ssh host hung up on me. I don't know why.
Under Linxu scp (secure copy), is available.