Может ли кто-нибудь порекомендовать использовать хорошую библиотеку SFTP? Сейчас я смотрю на такие продукты, как SecureBlackbox, IPWorks SSH, WodSFTP и Rebex SFTP. Однако я никогда раньше не использовал какую-либо библиотеку SFTP, поэтому я не уверен, что ищу.
Если кто-то использовал их раньше, есть ли причина, по которой я должен выбрать продукт «X» вместо «Y»?
Я поискал и нашел, что это форк SharpSSHи SSH.NET - самые современные и лучше всего обслуживаемые библиотеки для SFTP (не путать с FTPS ) в .NET. SSH.NET - это чистая реализация протокола SFTP в .NET 4.0, и я использовал ее в нескольких решениях с честью и большим успехом.
Оригинал SharpSsh кажется мертвым, и для большинства других решений требуется либо установка исполняемых файлов Windows, либо куча денег (или, что еще хуже, и то и другое).
Я также использовал SSH.NET ( sshnet.codeplex.com ) и нашел его превосходным.
Alex
10
Я сразу обнаружил, что SSH.NET глючит. Проверка наличия файла / каталога всегда возвращает истину. Множество открытых и получивших одобрение проблем в списке проблем отключили меня от проекта.
Ронни Оверби
1
@RonnieOverby Я искал проблему, о которой вы упомянули о файле / каталоге, существует, и проблема больше не существует. Я написал код для тестирования SSH.NET, и он работает должным образом.
Колин
4
SharpSSH вилка тоже мертва (последнее обновление в сентябре 2012 года ).
Мартин Прикрыл
3
Спасибо, после сравнения SSH.NET кажется чище и проще в использовании. Я обновлю свой ответ после завершения проекта, в котором я их использую. Спасибо,
Нур Лабабиди 01
52
Мы используем WinSCP. Это бесплатно. Это не библиотека, но имеет хорошо документированный и полнофункциональный интерфейс командной строки, который вы можете использовать с Process.Start.
Я успешно использовал сборку WinSCP .NET (winscpnet.dll), оболочку интерфейса сценариев WinSCP. Да, действительно, это хорошо задокументировано. Там много примеров. Если вы передаете неверные параметры, оболочка генерирует исключение, в котором подробно описывается, что не так. Мне потребовались некоторые методы проб и ошибок, чтобы получить правильные параметры, это не вина WinSCP, просто моя путаница между ftps и sftp. Также не забудьте скопировать WinSCP.exe в папку bin приложения; или вы можете установить Session.ExecutablePath перед вызовом Session.Open ().
Эдвард
WinSCP находится под лицензией GPL. Есть ли что-нибудь, с чем я могу работать по лицензии MIT?
SharpSSH - это чистая .NET-реализация набора клиентских протоколов SSH2. Он предоставляет API для связи с серверами SSH и может быть интегрирован в любое приложение .NET.
Библиотека является портом на C # проекта JSch от JCraft Inc. и выпущена под лицензией стиля BSD.
SharpSSH позволяет читать / записывать данные и передавать файлы по каналам SSH с помощью API, аналогичного API JSch. Кроме того, он предоставляет несколько дополнительных классов-оболочек, которые предлагают еще более простую абстракцию для связи по SSH.
классный материал, но не обновлялся с 2007 года, нужно что-то для .net 4
Johnny_D
1
Смотрите мой ответ о том, что обновляется и активно поддерживается.
Асбьёрн Ульсберг, 01
10
Я использовал эту библиотеку и не рекомендую ее. Это сработало, но это было похоже на неполный порт: некоторые функции отсутствовали в классах верхнего уровня (проверка существования файлов IIRC), и мне пришлось вызывать методы в частных полях, чтобы заставить их работать; закомментированные фрагменты кода Java, оставленные в исходном коде; классы-оболочки, названные в честь классов стандартной библиотеки Java; Идиомы Java повсюду. Вместо этого я использовал SSH.NET (как в сообщении @ asbjornu) с большим успехом.
Alex
8
Мы купили Rebex File Transfer Pack, и все в порядке. API прост, у нас нет проблем с коммуникациями, прокси-серверами и т. Д.
Но у меня нет возможности сравнить его с другим компонентом SFTP / FTPS.
Обратите внимание, что SFTP и FTPS - это разные протоколы.
Трент
6
У Bitvise есть отличный продукт под названием Tunnelier, который может связывать FTP с SFTP. Затем вы можете использовать стандартный FtpWebRequest в .NET.
В настоящее время я тестирую это для своих целей и обновлю свои выводы.
Обновить
Эта идея не идеальна для автоматической автоматизации, если только вы не хотите перепрыгивать через обручи, удерживая клиента подключенным как службу или что-то в этом роде, чего я добился с помощью NSSM .
Я пробовал автоматизировать CLI с различными клиентами, включая bitvise и winscp.com. Я также пробовал эти библиотеки классов .net: Winscp, SSH.NET, SharpSSH и коммерческий SFTP-клиент SecureBlackBox.
SecureBlackBox работал хорошо, но он очень тяжелый, может быть довольно дорогим в зависимости от лицензирования, и я не особо согласен с его API.
Несомненно , лучший бесплатный клиент sftp для разработки .NET - это winscp . Я написал несколько классов и методов расширения, чтобы упростить работу с ним: Winscp.Extensions
Я использую собственную 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 ) на моем сервере .
Chilkat не является полностью управляемым кодом. Это собственная библиотека, завернутая в .NET. Когда мы включили эту библиотеку, она сломала веб-дизайнер Visual Studio, потому что VS работает в 32-битном режиме. Нам пришлось создать все эти обходные пути между dev и prod (который находится в 64-битной версии), чтобы он мог использовать правильную DLL, а не забаву. Для решения этой проблемы требуется, чтобы на целевых машинах GAC были установлены 32- и 64-разрядные библиотеки DLL: chilkatforum.com/questions/114/…
Крис Смит
0
Для полной поддержки SFTP в .NET попробуйте edtFTPnet / PRO . Это уже долгое время с поддержкой множества различных серверов SFTP.
Мы также продаем SFTP-сервер CompleteFTP для Windows, который является недорогим способом получить поддержку SFTP на вашем компьютере с Windows. Также есть FTP и FTPS.
Некоторое время я использовал библиотеку edtFTPnet - работает хорошо, но документация для привязок .net невелика.
Джон Кейдж
0
Я использовал IP * Works SSH, и это здорово. Простота установки и использования. Кроме того, их поддержка на высшем уровне, когда вы сталкиваетесь с вопросами или проблемами.
Ответы:
Я поискал и нашел, что
это форк SharpSSHи SSH.NET - самые современные и лучше всего обслуживаемые библиотеки для SFTP (не путать с FTPS ) в .NET. SSH.NET - это чистая реализация протокола SFTP в .NET 4.0, и я использовал ее в нескольких решениях с честью и большим успехом.Оригинал
SharpSshкажется мертвым, и для большинства других решений требуется либо установка исполняемых файлов Windows, либо куча денег (или, что еще хуже, и то и другое).источник
Мы используем WinSCP. Это бесплатно. Это не библиотека, но имеет хорошо документированный и полнофункциональный интерфейс командной строки, который вы можете использовать с Process.Start.
Обновление: с v.5.0 WinSCP имеет библиотеку-оболочку .NET для уровня сценариев WinSCP.
источник
Проверьте это: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh
источник
Мы купили Rebex File Transfer Pack, и все в порядке. API прост, у нас нет проблем с коммуникациями, прокси-серверами и т. Д.
Но у меня нет возможности сравнить его с другим компонентом SFTP / FTPS.
источник
У 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
источник
Я использую собственную 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 ) на моем сервере .
источник
Для полной поддержки SFTP в .NET попробуйте edtFTPnet / PRO . Это уже долгое время с поддержкой множества различных серверов SFTP.
Мы также продаем SFTP-сервер CompleteFTP для Windows, который является недорогим способом получить поддержку SFTP на вашем компьютере с Windows. Также есть FTP и FTPS.
источник
Я использовал IP * Works SSH, и это здорово. Простота установки и использования. Кроме того, их поддержка на высшем уровне, когда вы сталкиваетесь с вопросами или проблемами.
источник