Ответ 1

Мы использовали SharpSSH для sftp, он хорошо работает и является открытым исходным кодом.

Пример кода:

sftp = new Tamir.SharpSsh.Sftp(ipAddress, username, password);
sftp.Connect();
sftp.Get(sourcePath, destinationPath);
sftp.Close();

Ответ 2

Мы успешно используем компоненты Rebex (FTP, S-FTP, FTP-S) для этого в наших проектах. Однако они коммерчески.