2009-02-09 43 views
86

Có ai có thể giới thiệu 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 đó nên tôi không chắc chắn những gì tôi đang tìm kiếm.Thư viện SFTP cho .NET

Nếu có ai đã sử dụng chúng trước đây, có bất kỳ lý do nào tôi nên đi với sản phẩm "X" trên "Y" không?

+0

bản sao có thể có của [Làm cách nào để tải tệp lên máy chủ SFTP trong C#/.NET?] (Http://stackoverflow.com/questions/86458/how-do-i-upload-a-file-to -an-sftp-server-in-c-sharp-net) –

+0

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

Trả lời

6

Chúng tôi đã mua Rebex Gói chuyển tệp và tất cả đều ổn. API dễ dàng, chúng tôi không gặp bất kỳ sự cố nào với comunications, máy chủ proxy, v.v ...

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

+1

Tôi đồng ý với tuyên bố này. +1 – Pat

+0

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

10

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

SharpSSH là một tinh khiết NET thực hiện của bộ ứng dụng giao thức client SSH2. Nó cung cấp một API để giao tiếp với 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à cổng C# của dự án JSch từ JCraft Inc. và là đượ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 kênh SSH bằng API tương tự với API của JSch. Trong phần bổ sung , nó cung cấp thêm một số lớp học bổ sung cung cấp thậm chí trừu tượng đơn giản hơn cho giao tiếp SSH .

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

+7

các nội dung thú vị, nhưng chưa cập nhật kể từ năm 2007, cần phải có smth cho .net 4 –

+1

Xem câu trả lời của tôi cho một thứ được cập nhật và duy trì tích cực. –

+9

Tôi đã sử dụng thư viện này và không khuyến nghị sử dụng. Nó hoạt động, nhưng nó giống như một cổng chưa 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 các tệp tồn tại IIRC), và tôi phải gọi các phương thức trên các trường riêng để làm việc; các đoạn mã Java đã nhận xét còn lại trong nguồn; các lớp wrapper được đặt tên theo các lớp trong thư viện chuẩn của Java; Thành ngữ Java trong suốt. Tôi đã sử dụng SSH.NET thay vì (như trong bài viết của asbjornu @) với thành công lớn. – Alex

0

Để được hỗ trợ SFTP toàn diện trong .NET thử edtFTPnet/PRO. Đó là khoảng một thời gian dài với sự hỗ trợ cho nhiều máy chủ SFTP khác nhau.

Chúng tôi cũng bán máy chủ SFTP cho Windows, CompleteFTP, đây là cách rẻ tiền để nhận hỗ trợ SFTP trên máy tính Windows của bạn. Cũng có FTP và FTPS.

+0

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 dành cho các liên kết .net không tuyệt vời. –

43

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

Cập nhật: với v.5.0, WinSCP có a .NET wrapper library vào lớp kịch bản của WinSCP.

+1

Có vẻ khá tốt với tôi: http://winscp.net/eng/docs/library#example –

+3

Tôi đã sử dụng thành công assembly WinSCP .NET (winscpnet.dll), trình bao bọc trên giao diện kịch bản WinSCP. Có, thực sự, nó là tài liệu tốt. Nó có nhiều ví dụ. Nếu bạn đưa vào các tham số không đúng, trình bao bọc sẽ đưa ra một ngoại lệ chi tiết những gì là sai. Nó đã cho tôi một số thử nghiệm và lỗi để có được các thông số đúng, không có lỗi của WinSCP, chỉ là sự nhầm lẫn của tôi 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

+0

WinSCP được cấp phép theo GPL. Tôi có thể làm việc với giấy phép theo MIT không? –

0

Tôi đã sử dụng IP * Hoạt động SSH và rất tuyệt. Dễ dàng cài đặt và sử dụng. Thêm vào đó, sự hỗ trợ của họ là đỉnh cao khi bạn gặp vấn đề hoặc vấn đề.

3

Tôi đã sử dụng thư viện SFTP gốc của Chilkat (http://www.chilkatsoft.com/ssh-sftp-component.asp) trong một vài tháng và nó hoạt động rất tốt. Được 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 đã nhận được là phiên bản 64bit để làm việc 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.

+0

Chilkat không phải là mã được quản lý 100%. Một thư viện bản địa của nó được bao bọc trong .NET. Khi chúng tôi kết hợp thư viện này, nó đã phá vỡ 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ả các công việc xung quanh giữa dev và prod (đó là trong 64-bit) để nó có thể sử dụng DLL phải, không vui vẻ. Công việc xung quanh yêu cầu GAC phải cài đặt cả hai 32 và 64 bit DLL trên các máy đích: http://www.chilkatforum.com/questions/114/64bit-could-not-load-file-or-assembly-chilkatdotnet4-or -one-of-its-dependencies-an-cố-được-thực hiện-để-tải-một-chương-trình-với-một-không-định dạng- –

5

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

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

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

cập nhật

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

Tôi đã thử tự động hóa CLI với nhiều khách hàng khác nhau bao gồm bitvise và winscp.com. Tôi cũng đã thử các thư viện lớp .net này: Winscp, SSH.NET, SharpSSH và máy 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ốn kém tùy thuộc vào cấp phép và tôi không đồng ý nhiều với API của nó.

Hạ cánh, ứng dụng khách sftp miễn phí tốt nhất để phát triển .NET là winscp. Tôi đã viết một vài lớp học và phương pháp khuyến nông để làm việc với nó dễ dàng hơn: Winscp.Extensions

69

Tôi đã tìm kiếm xung quanh và thấy rằng this fork of SharpSSHSSH.NET có nhiều cập nhật và duy trì các thư viện tốt nhất cho SFTP (không được lẫn lộn với FTPS) giao tiếp trong .NET. SSH.NET là một giao thức .NET 4.0 sạch của giao thức SFTP, và tôi đã sử dụng nó trong một vài giải pháp với màu sắc bay 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 hoặc yêu cầu cài đặt các tệp thực thi Windows hoặc một khối tiền mặt (hoặc tệ hơn; cả hai).

+5

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

+7

Tôi tìm thấy SSH.NET là lỗi ngay lập tức. Kiểm tra file/dir tồn tại luôn luôn trả về true. Nhiều vấn đề mở và upvoted trong danh sách vấn đề đã khiến tôi tắt dự án. –

+1

@RonnieOverby Tôi đã tìm kiếm sự cố 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