Библиотеки 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, и это здорово. Простота настройки и использования. Кроме того, их поддержка является первоклассной, когда вы сталкиваетесь с вопросами или проблемами.