Thư viện SFTP cho .NET [đã đóng]


109

Có ai có thể giới thiệu một thư viện SFTP tốt để sử dụng không? Hiện tại, tôi đang xem các sản phẩm như SecureBlackbox, IPWorks SSH, WodSFTP và Rebex SFTP. Tuy nhiên, tôi chưa bao giờ sử dụng bất kỳ thư viện SFTP nào trước đây nên tôi không chắc mình đang tìm kiếm gì.

Nếu ai đó đã sử dụng chúng trước đây, có lý do gì tại sao tôi nên chọn sản phẩm "X" hơn "Y" không?



Có thư viện SFTP được cấp phép theo MIT không?
Yash Saraiya

Bạn có thể kiểm tra việc rà soát chi tiết cho SFTP kiện cho NET thedownloadplanet.com/reviews/...
alexanoid

Câu trả lời:


87

Tôi đã tìm kiếm xung quanh và thấy rằng ngã ba này của SharpSSHSSH.NET là các thư viện cập nhật nhất và được duy trì tốt nhất cho giao tiếp SFTP (không nên nhầm lẫn với FTPS ) trong .NET. SSH.NET là một triển khai .NET 4.0 sạch của giao thức SFTP và tôi đã sử dụng nó trong một số giải pháp với nhiều màu sắc và thành công lớn.

Bản gốc SharpSsh dường như đã chết và hầu hết các giải pháp khác đều yêu cầu cài đặt các tệp thực thi của Windows hoặc một khối lượng tiền mặt (hoặc tệ hơn; cả hai).


6
Tôi cũng đã sử dụng SSH.NET ( sshnet.codeplex.com ) và thấy nó rất xuất sắc.
Alex

10
Tôi thấy SSH.NET có lỗi ngay lập tức. Kiểm tra tệp / dir tồn tại luôn trả về true. Nhiều vấn đề mở và được ủng hộ trong danh sách vấn đề đã khiến tôi không tham gia dự án.
Ronnie Overby

1
@RonnieOverby Tôi đã tìm sự cố mà bạn đã đề cập về tệp / dir tồn tại và sự cố không còn tồn tại nữa. Tôi đã viết mã để kiểm tra SSH.NET và nó hoạt động như mong đợi.
Colin

4
Các SharpSSH ngã ba đã chết quá (cập nhật lần cuối vào tháng 9 năm 2012).
Martin Prikryl

3
Cảm ơn Bạn, Sau khi so sánh chúng, SSH.NET có vẻ sạch hơn và dễ sử dụng hơn. Tôi sẽ cập nhật câu trả lời của mình sau khi tôi hoàn thành dự án mà tôi đang sử dụng chúng. Cảm ơn bạn,
Nour Lababidi

52

Chúng tôi sử dụng WinSCP. Nó miễn phí. Nó không phải là lib, nhưng có giao diện dòng lệnh đầy đủ tính năng và được ghi chép đầy đủ mà bạn có thể sử dụng với Process.Start.

Cập nhật: với v.5.0, WinSCP có thư viện trình bao bọc .NET cho lớp kịch bản của WinSCP.


1
Trông khá tốt với tôi: winscp.net/eng/docs/library#example
Jon Cage

4
Tôi đã sử dụng thành công lắp ráp WinSCP .NET (woncpnet.dll), trình bao bọc trên giao diện kịch bản WinSCP. Vâng, thực sự, nó được ghi lại rất tốt. Nó có nhiều ví dụ. Nếu bạn chuyển các tham số không chính xác, trình bao bọc sẽ ném ra một ngoại lệ nêu rõ điều gì sai. Tôi đã mất một số lần thử và sai để xác định đúng các thông số, không có lỗi của WinSCP, chỉ là sự nhầm lẫn giữa ftps và sftp. Ngoài ra, hãy nhớ sao chép WinSCP.exe vào thư mục bin ứng dụng; hoặc bạn có thể đặt Session.ExecutablePath trước khi gọi Session.Open ().
Edward

WinSCP được cấp phép theo GPL. Có bất cứ điều gì mà tôi có thể làm việc với được cấp phép theo MIT không?
Yash Saraiya


1
Không tốt, Wincp bị ràng buộc với .exe, đây là phương thức né tránh để phát triển đa nền tảng.
Alwyn

9

Kiểm tra điều này: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSH là một triển khai .NET thuần túy của bộ giao thức khách SSH2. Nó cung cấp một API để giao tiếp với các máy chủ SSH và có thể được tích hợp vào bất kỳ ứng dụng .NET nào.

Thư viện là một cổng C # của dự án JSch từ JCraft Inc. và được phát hành theo giấy phép kiểu BSD.

SharpSSH cho phép bạn đọc / ghi dữ liệu và truyền tệp qua các kênh SSH bằng cách sử dụng một API tương tự như API của JSch. Ngoài ra, nó cung cấp một số lớp trình bao bọc bổ sung cung cấp tính trừu tượng đơn giản hơn cho giao tiếp SSH.

Trang dự án SharpSSH tại nguồn giả mạo: http://sourceforge.net/projects/sharpssh


9
nội dung thú vị nhưng chưa được cập nhật kể từ năm 2007, cần smth cho .net 4
Johnny_D

1
Xem câu trả lời của tôi cho một cái gì đó được cập nhật và duy trì tích cực.
Asbjørn Ulsberg

10
Tôi đã sử dụng thư viện này và không giới thiệu nó. Nó hoạt động, nhưng nó giống như một cổng không hoàn chỉnh: một số tính năng bị thiếu trong các lớp cấp cao nhất (kiểm tra xem tệp có tồn tại IIRC hay không) và tôi phải gọi các phương thức trên các trường riêng để chúng hoạt động; các đoạn mã Java được nhận xét ra còn lại trong nguồn; các lớp bao bọc được đặt tên theo các lớp trong thư viện chuẩn Java; Các thành ngữ Java xuyên suốt. Tôi đã sử dụng SSH.NET thay thế (như trong bài đăng của @ asbjornu) với thành công lớn.
Alex

8

Chúng tôi đã mua Gói truyền tệp Rebex và tất cả đều ổn. API rất dễ dàng, chúng tôi không gặp bất kỳ vấn đề nào với thông tin liên lạc, máy chủ proxy, v.v.

Nhưng tôi không có cơ hội để so sánh nó với một thành phần SFTP / FTPS khác.


Xin lưu ý rằng SFTP và FTPS không phải là cùng một giao thức.
Trent

6

Bitvise có một sản phẩm tuyệt vời được gọi là Tunnelier có thể kết nối FTP với SFTP. Sau đó, bạn có thể sử dụng FtpWebRequest tiêu chuẩn trong .NET.

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

Tôi hiện đang thử nghiệm điều này cho các mục đích của riêng tôi và sẽ cập nhật những phát hiện của tôi.

cập nhật

Ý tưởng này không lý tưởng cho tự động hóa không cần giám sát, trừ khi bạn muốn chuyển qua các vòng giữ máy khách được kết nối như một dịch vụ hoặc một cái gì đó, mà tôi đã hoàn thành bằng cách sử dụng NSSM .

Tôi đã thử tự động hóa CLI với các ứng dụng khách khác nhau bao gồm bitvise và woncp.com. Tôi cũng đã thử các thư viện lớp .net này: Winscp, SSH.NET, SharpSSH và ứng dụng khách SecureBlackBox SFTP thương mại.

SecureBlackBox hoạt động tốt, nhưng nó rất nặng, có thể khá đắt tùy thuộc vào việc cấp phép và tôi không đồng ý lắm với API của nó.

Xin chào, ứng dụng sftp miễn phí tốt nhất để phát triển .NET là wincp . Tôi đã viết một vài lớp và phương thức mở rộng để làm việc với nó dễ dàng hơn: Winscp.


4

Tôi đã sử dụng thư viện SFTP gốc của Chilkat ( http://www.chilkatsoft.com/ssh-sftp-component.asp ) trong vài tháng nay và nó hoạt động rất tốt. Đã sử dụng nó trong một công việc hàng đêm để tải xuống các tệp lớn và thực hiện xác thực khóa cá nhân. Chỉ có vấn đề mà tôi gặp phải là phiên bản 64bit hoạt động trên windows server 2008, tôi cần cài đặt vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) trên máy chủ của mình .


2
Chilkat không phải là mã được quản lý 100%. Nó là một thư viện gốc được bao bọc trong .NET. Khi chúng tôi kết hợp thư viện này, nó đã phá vỡ trình thiết kế web studio trực quan vì VS chạy ở chế độ 32-bit. Chúng tôi đã phải tạo ra tất cả những cách làm việc xung quanh giữa dev và prod (ở dạng 64-bit) để nó có thể sử dụng đúng DLL, không vui đâu. Công việc xung quanh yêu cầu GAC phải cài đặt cả DLL 32 và 64 bit trên các máy mục tiêu: chilkatforum.com/questions/114/…
Chris Smith

0

Để được hỗ trợ SFTP toàn diện trong .NET, hãy thử edtFTPnet / PRO . Đã có một thời gian dài hỗ trợ nhiều máy chủ SFTP khác nhau.

Chúng tôi cũng bán máy chủ SFTP dành cho Windows, CompleteFTP , đây là một cách không tốn kém để nhận hỗ trợ cho SFTP trên máy Windows của bạn. Cũng có FTP và FTPS.


Tôi đã sử dụng thư viện edtFTPnet một thời gian - hoạt động tốt nhưng tài liệu cho các ràng buộc .net không tốt.
Jon Cage

0

Tôi đã sử dụng IP * Works SSH và nó thật tuyệt. Dễ dàng cài đặt và sử dụng. Thêm vào đó, sự hỗ trợ của họ là hàng đầu khi bạn gặp câu hỏi hoặc vấn đề.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.