Bitvise a un excellent produit appelé Tunnelier qui peut relier FTP à SFTP. Vous pourriez ensuite utiliser FtpWebRequest standard dans .NET.
http://www.bitvise.com/ftp-bridge
Je teste actuellement ceci pour mes propres besoins et mettrai à jour avec mes résultats.
mise à jour
Cette idée n'est pas idéale pour l'automatisation non assistée, à moins que vous ne vouliez sauter à travers des obstacles en maintenant le client connecté en tant que service ou quelque chose du genre, ce que j'ai accompli en utilisant NSSM.
J'ai essayé l'automatisation en ligne de commande avec différents clients y compris bitvise et winscp.com. J'ai également essayé ces bibliothèques de classe .net: Winscp, SSH.NET, SharpSSH, et le client commercial SecureBlackBox SFTP.
SecureBlackBox a bien fonctionné, mais c'est très lourd, peut être assez cher selon la licence, et je n'étais pas tellement d'accord avec son API.
Sans aucun doute, le meilleur client sftp gratuit pour le développement .NET est winscp. J'ai écrit quelques classes et méthodes d'extension pour faciliter le travail avec lui : Winscp.Extensions