I had a co-worker ask me about using WinSCP for automating SFTP puts to a remote host. I personally have never setup a SFTP server nor use SFTP client (or it’s been a while :)). There is a thread on http://forums.iis.net that has great information. I included the link to the post. The one thing I used for my test was FreeFTPD, which was real straight forward. It seems to support NT Authentication. I tried a couple of times, seems to be lacking a easy feature to extend to an entire Active Directory environment. For my testing, it was very good. I setup on Windows Server 2008 R2 with no issues. I’ve setup FTP over SSL too and it’s a different solution. Depends on your requirements.
//Syntax I used on my client to automate.
//”C:Program FilesWinSCPWinSCP.com” /script:”C:Program FilesWinSCPWinSCP.txt”
//WinSCP.txt
option batch on
option confirm off
open sftp://SCS:[email protected]:22 -hostkey=”ssh-rsa 1024 42:9e:c7:f4:7f:8b:50:10:6a:06:04:b1:d4:f2:04:6d”
cd /CDrive
put c:Default.htm
exit
//How I got the -hostkey using WinSCP from client
//”C:Program FilesWinSCPWinSCP.com” /command
winscp> help
call Executes arbitrary remote command
cd Changes remote working directory
chmod Changes permissions of remote file
close Closes session
exit Closes all sessions and terminates the program
get Downloads file from remote directory to local directory
help Displays help
keepuptodate Continuously reflects changes in local directory on remote one
lcd Changes local working directory
lls Lists the contents of local directory
ln Creates remote symbolic link
lpwd Prints local working directory
ls Lists the contents of remote directory
mkdir Creates remote directory
mv Moves or renames remote file
open Connects to server
option Sets or shows value of script options
put Uploads file from local directory to remote directory
pwd Prints remote working directory
rm Removes remote file
rmdir Removes remote directory
session Lists connected sessions or selects active session
synchronize Synchronizes remote directory with local one
winscp> open
Host: web1
Searching for host…
Connecting to host…
Authenticating…
The server’s host key was not found in the cache. You have no guarantee that the
server is the computer you think it is.
//This is not a internet facing system. I just wanted to mention. ?
The server’s rsa2 key fingerprint is:
ssh-rsa 1024 42:9e:c7:f4:7f:8b:50:10:6a:06:04:b1:d4:f2:04:6d
If you trust this host, press Yes. To connect without adding host key to the cac
he, press No. To abandon the connection press Cancel.
Continue connecting and add host key to the cache?
(Y)es, (N)o, C(a)ncel, (C)opy Key: Cancel
Enjoy,
Steve Schofield
Microsoft MVP – IIS