Библиотеки SFTP для .NET

Можно ли рекомендовать хорошую библиотеку SFTP? Сейчас я рассматриваю такие продукты, как SecureBlackbox, IPWorks SSH, WodSFTP и Rebex SFTP. Тем не менее, я никогда не использовал SFTP-библиотеку раньше, поэтому я не уверен, что я ищу.

Если кто-то использовал их раньше, есть ли причина, по которой я должен идти с продуктом "X" над "Y"?

Ответ 1

Я искал и обнаружил, что этот форк SharpSSH и SSH.NET - самые современные и лучше всего поддерживаемые библиотеки для SFTP (не перепутал с FTPS) связью в .NET. SSH.NET - это чистая .NET 4.0 реализация протокола SFTP, и я использовал его в нескольких решениях с плавающими цветами и большим успехом.

Оригинальный SharpSsh кажется мертвым, и для большинства других решений требуется либо установка исполняемых файлов Windows, либо куча денег (или еще хуже; оба варианта).

Ответ 2

Мы используем WinSCP. Это бесплатно. Это не lib, но имеет хорошо документированный и полнофункциональный интерфейс командной строки, который вы можете использовать с Process.Start.

Обновление: с v.5.0, WinSCP имеет библиотеку оберток .NET на уровне сценариев WinSCP.

Ответ 3

Проверьте это: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSH - это чистая реализация .NET набора клиентских протоколов SSH2. Это предоставляет API для связи с SSH-серверы и могут быть интегрированы в любое приложение .NET.

Библиотека представляет собой порт С# для JSch проекта от JCraft Inc. и выпущен под лицензией стиля BSD.

SharpSSH позволяет читать/записывать данные и передавать файлы по SSH-каналам используя API, аналогичный API JSch. В Кроме того, он предоставляет некоторые дополнительные классы-оболочки, которые предлагают даже более простая абстракция для SSH коммуникации.

Страница проекта SharpSSH в исходной кузнице: http://sourceforge.net/projects/sharpssh

Ответ 4

Мы купили Rebex File Transfer Pack, и все в порядке. API прост, у нас нет проблем с коммуникациями, прокси-серверами и т.д.

Но у меня нет возможности сравнить его с другим компонентом SFTP/FTPS.

Ответ 5

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

Ответ 6

Я использую собственную SFTP-библиотеку Chilkat (http://www.chilkatsoft.com/ssh-sftp-component.asp) уже пару месяцев, и она отлично работает. Использул его в ночной работе для загрузки больших файлов и проверки подлинности с использованием частного ключа. Единственная проблема, с которой я столкнулся, заключалась в том, чтобы получить 64-битную версию для работы на сервере Windows 2008, мне нужно было установить vcredist_x64.exe(http://www.microsoft.com/download/en/details.aspx?id=14632) на моем сервер.

Ответ 7

Для полной поддержки SFTP в .NET попробуйте edtFTPnet/PRO. Это было долгое время с поддержкой множества различных SFTP-серверов.

Мы также продаем SFTP-сервер для Windows, CompleteFTP, что является недорогим способом получения поддержки SFTP на вашей Windows-машине, Также есть FTP и FTPS.

Ответ 8

Я использовал IP * Works SSH, и это здорово. Простота настройки и использования. Кроме того, их поддержка является первоклассной, когда вы сталкиваетесь с вопросами или проблемами.