У Bitvise есть отличный продукт под названием Tunnelier, который может связывать FTP с SFTP. Затем вы можете использовать стандартный FtpWebRequest в .NET.
http://www.bitvise.com/ftp-bridge
В настоящее время я тестирую это для своих целей и обновлю свои выводы.
Обновить
Эта идея не идеальна для автоматической автоматизации, если только вы не хотите перепрыгивать через обручи, удерживая клиента подключенным как службу или что-то в этом роде, чего я добился с помощью NSSM .
Я пробовал автоматизировать CLI с различными клиентами, включая bitvise и winscp.com. Я также пробовал эти библиотеки классов .net: Winscp, SSH.NET, SharpSSH и коммерческий SFTP-клиент SecureBlackBox.
SecureBlackBox работал хорошо, но он очень тяжелый, может быть довольно дорогим в зависимости от лицензирования, и я не особо согласен с его API.
Несомненно , лучший бесплатный клиент sftp для разработки .NET - это winscp . Я написал несколько классов и методов расширения, чтобы упростить работу с ним: Winscp.Extensions