Бібліотеки SFTP для .NET [закрито]


109

Хтось може порекомендувати використовувати хорошу бібліотеку SFTP? Зараз я переглядаю такі продукти, як SecureBlackbox, IPWorks SSH, WodSFTP та Rebex SFTP. Однак я ніколи раніше не використовував жодної бібліотеки SFTP, тому не знаю, що шукаю.

Якщо хтось використовував їх раніше, чи є якась причина, чому я повинен перейти з продуктом "X" над "Y"?



Чи є ліцензована бібліотека SFTP в рамках MIT?
Яш Сарая

Ви можете перевірити детальний огляд компонента SFTP для NET thedownloadplanet.com/reviews/…
alexanoid

Відповіді:


87

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

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


6
Я також використовував SSH.NET ( sshnet.codeplex.com ) і вважав, що це відмінно.
Олексій

10
Я виявив, що SSH.NET баггі відразу від кажана. Перевірка на наявність файлу / dir завжди повертається true. Багато відкритих та схвалених питань у списку випусків відключили мене від проекту.
Ронні Овербі

1
@RonnieOverby Я шукав проблему, про яку ви згадали про файл / dir, і ця проблема більше не існує. Я написав код для тестування SSH.NET, і він працює як слід.
Колін

4
SharpSSH вилка теж мертва (останнє оновлення в вересні 2012 року ).
Мартін Прикрил

3
Дякую, після порівняння їх SSH.NET здається більш чистим та простим у використанні. Я
оновлю

52

Ми використовуємо WinSCP. Це безкоштовно. Він не є лібом, але має добре задокументований і повнофункціональний інтерфейс командного рядка, який ви можете використовувати з Process.Start.

Оновлення: з v.5.0 WinSCP має бібліотеку обгортки .NET для сценаріального шару WinSCP.


1
Мені дуже добре виглядає: wincp.net/eng/docs/library#example
Джон Кейдж

4
Я успішно використовував збірку WinSCP .NET (wincpnet.dll), обгортку інтерфейсу сценаріїв WinSCP. Так, насправді це добре документально підтверджено. Він має багато прикладів. Якщо ви вводите невірні параметри, обгортка видає виняток із деталізацією того, що не так. Мені знадобилися деякі спроби та помилки, щоб правильно встановити параметри, без вини WinSCP, просто моє плутанина між ftps і sftp. Також не забудьте скопіювати WinSCP.exe у папку бін програми; або ви можете встановити Session.ExecutablePath перед тим, як викликати Session.Open ().
Едвард

WinSCP ліцензований відповідно до GPL. Чи можу я працювати з ліцензованими в рамках MIT?
Яш Сарая


1
Нічого хорошого, wincp прив’язаний до .exe, який ухиляється від розробки мультиплатформ.
Алвін

9

Перевірте це: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSH - це чиста .NET реалізація набору клієнтських протоколів SSH2. Він надає API для зв'язку з серверами SSH і може бути інтегрований у будь-яку програму .NET.

Бібліотека є портом C # проекту JSch від JCraft Inc. і випускається за ліцензією стилю BSD.

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

Сторінка проекту SharpSSH у джерелі кузня: http://sourceforge.net/projects/sharpssh


9
класні речі, але не оновлювались з 2007 року, потрібна програма для .net 4
Johnny_D

1
Дивіться мою відповідь на те, що оновлено та активно підтримується.
Asbjørn Ulsberg

10
Я використав цю бібліотеку і не рекомендую. Це спрацювало, але це виглядало як неповний порт: у класах верхнього рівня відсутні деякі функції (тестування, чи існують файли IIRC), і мені довелося викликати методи на приватних полях, щоб змусити їх працювати; коментовані фрагменти коду Java, залишені у джерелі; класи обгортки, названі на честь у стандартній бібліотеці Java; Ідіоми Java на всьому протязі. Я замість цього використовував SSH.NET (як на посаді @ asbjornu) з великим успіхом.
Олексій

8

Ми купили Ребекс файлів , і все в порядку. API простий, у нас немає жодних проблем з комунікаціями, проксі-серверами тощо ...

Але я не маю шансу порівняти його з іншим компонентом SFTP / FTPS.


Зверніть увагу, що SFTP і FTPS не є одним і тим же протоколом.
Трент,

6

У Bitvise є чудовий продукт під назвою Tunnelier, який може приєднати FTP до SFTP. Потім ви можете використовувати стандартний FtpWebRequest в .NET.

http://www.bitvise.com/ftp-bridge

В даний час я тестую це для власних цілей і оновлю свої висновки.

оновлення

Ця ідея не є ідеальною для автоматизованої автоматизації, якщо ви не хочете перестрибувати обручі, підтримуючи клієнта як послугу чи щось таке, що я досяг за допомогою NSSM .

Я спробував автоматизацію CLI з різними клієнтами, включаючи bitvise та wincp.com. Я також спробував такі бібліотеки класів .net: Winscp, SSH.NET, SharpSSH та комерційний SFTP клієнт SecureBlackBox.

SecureBlackBox працював добре, але це дуже велика вага, може бути досить дорогим залежно від ліцензування, і я не так сильно погодився з його API.

Руки вниз, найкращий безкоштовний sftp-клієнт для розробки .NET - wincp . Я написав кілька класів та методів розширення, щоб полегшити роботу з ним: Winscp.Extensions


4

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


2
Chilkat не є 100% керованим кодом. Його рідна бібліотека, обгорнута в .NET. Коли ми включили цю бібліотеку, вона порушила веб-дизайнера візуальної студії, оскільки VS працює в 32-бітному режимі. Нам довелося створити всі ці робочі обходи між програмою dev і prod (яка є в 64-бітній), щоб вона могла використовувати правильну DLL, а не весело. Для вирішення проблеми GAC повинен мати 32-і 64-бітну DLL, встановлену на цільових машинах: chilkatforum.com/questions/114/…
Кріс Сміт

0

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

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


Я використовував бібліотеку edtFTPnet деякий час - працює добре, але документація для прив’язки .net не велика.
Джон Кейдж

0

Я використовував IP * Works SSH, і це чудово. Проста в налаштуванні та використанні. Плюс їх підтримка є першокласною, коли ви стикаєтеся з питаннями або проблемами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.