2009-02-09 13 views
86

Qualcuno può consigliare una buona libreria SFTP da utilizzare? In questo momento sto guardando prodotti come SecureBlackbox, IPWorks SSH, WodSFTP e Rebex SFTP. Tuttavia, non ho mai usato alcuna libreria SFTP prima quindi non sono sicuro di cosa sto cercando.Librerie SFTP per .NET

Se qualcuno li ha usati prima, c'è qualche motivo per cui dovrei andare con il prodotto "X" su "Y"?

+0

possibile duplicato di [Come caricare un file su un server SFTP in C#/.NET?] (Http://stackoverflow.com/questions/86458/how-do-i-upload-a-file-to -an-sftp-server-in-c-sharp-net) –

+0

Esiste una libreria SFTP con licenza MIT? –

risposta

6

Abbiamo acquistato un pacchetto di trasferimento file Rebex e tutto è a posto. L'API è facile, non abbiamo alcun problema con le comunicazioni, i server proxy, ecc ...

Ma non ho la possibilità di confrontarlo con un altro componente SFTP/FTPS.

+1

Concordo con questa affermazione. +1 – Pat

+0

Si noti che SFTP e FTPS non sono lo stesso protocollo. – Trent

10

Check this out: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

SharpSSH è un'implementazione .NET puro della suite di protocolli client SSH2. È fornisce un'API per la comunicazione con i server SS2 e può essere integrato in qualsiasi applicazione .NET .

La libreria è una porta C# del progetto JSch di JCraft Inc. ed è rilasciata con licenza BSD.

SharpSSH consente di leggere/scrivere i dati e trasferire file su canali SSH utilizzando un'API simile all'API di JSch. Nell'aggiunta , sono disponibili altre classi wrapper che offrono anche un'astrazione più semplice per la comunicazione SSH .

pagina SharpSSH progetto sourceforge: http://sourceforge.net/projects/sharpssh

+7

roba interessante, ma non aggiornata dal 2007, serve smth per .net 4 –

+1

Vedere la mia risposta per qualcosa che viene aggiornato e mantenuto attivamente. –

+9

Ho usato questa libreria e non la consiglio. Funzionava, ma sembrava una porta incompleta: alcune funzioni mancavano nelle classi di livello superiore (verifica se esistessero file IIRC) e dovevo chiamare metodi su campi privati ​​per farli funzionare; pezzi commentati di codice Java lasciati nella fonte; classi wrapper denominate in seguito nella libreria standard Java; Idiomi Java in tutto. Ho usato SSH.NET invece (come nel post di @ asbjornu) con grande successo. – Alex

0

Per il supporto completo SFTP NET provare edtFTPnet/PRO. È passato molto tempo con il supporto di molti server SFTP diversi.

Vendiamo anche un server SFTP per Windows, CompleteFTP, che è un modo economico per ottenere supporto per SFTP sul computer Windows. Ha anche FTP e FTPS.

+0

Ho usato la libreria edtFTPnet per un po 'di tempo - funziona bene ma la documentazione per i collegamenti .net non è eccezionale. –

43

Utilizziamo WinSCP. È gratis. Non è una libreria, ma ha un'interfaccia a riga di comando ben documentata e completa che è possibile utilizzare con Process.Start.

Aggiornamento: con v.5.0, WinSCP ha a .NET wrapper library per il livello di script di WinSCP.

+1

Sembra abbastanza buono per me: http://winscp.net/ita/docs/library#example –

+3

Ho utilizzato con successo l'assembly WinSCP .NET (winscpnet.dll), wrapper sull'interfaccia di script WinSCP. Sì, davvero, è ben documentato. Ha molti esempi. Se passi dei parametri errati, il wrapper genera un'eccezione che specifica cosa è sbagliato. Ci sono voluti alcuni tentativi per ottenere i parametri corretti, nessuna colpa di WinSCP, solo la mia confusione tra ftps e sftp. Inoltre, ricorda di copiare WinSCP.exe nella cartella bin dell'applicazione; oppure puoi impostare Session.ExecutablePath prima di chiamare Session.Open(). – Edward

+0

WinSCP è concesso in licenza sotto licenza GPL. C'è qualcosa che posso lavorare con licenza sotto MIT? –

0

Ho usato IP * Works SSH ed è fantastico. Facile da configurare e utilizzare. Inoltre, il loro supporto è di prim'ordine quando ti imbatti in domande o problemi.

3

Utilizzo la libreria SFTP nativa di Chilkat (http://www.chilkatsoft.com/ssh-sftp-component.asp) per un paio di mesi e funziona perfettamente. Lo stavo usando in un lavoro notturno per scaricare file di grandi dimensioni e fare l'autenticazione con chiave privata. L'unico problema che avevo era che la versione a 64 bit funzionasse su Windows Server 2008, avevo bisogno di installare vcredist_x64.exe (http://www.microsoft.com/download/en/details.aspx?id=14632) sul mio server.

+0

Chilkat non è un codice gestito al 100%. È una libreria nativa avvolta in .NET. Quando abbiamo incorporato questa libreria, ha rotto il web designer di Visual Studio perché VS viene eseguito in modalità a 32 bit.Abbiamo dovuto creare tutti questi work around tra dev e prod (che è a 64 bit) in modo che possa usare la DLL corretta, non divertente. Per risolvere il problema, è necessario che il GAC abbia sia la DLL a 32 e 64 bit installata sui computer di destinazione: http://www.chilkatforum.com/questions/114/64bit-could-not-load-file-or-assembly-chilkatdotnet4-or -uno-delle-sue-dipendenze-un-tentativo-era-fatto-per-caricare-un-programma-con-un-formato errato –

5

Bitvise ha un ottimo prodotto chiamato Tunnelier che può collegare FTP a SFTP. È quindi possibile utilizzare lo standard FtpWebRequest in .NET.

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

Attualmente sto testando questo per i miei scopi e aggiornerò con le mie scoperte.

aggiornamento

Questa idea non è l'ideale per l'automazione incustodita, a meno che non si desidera passare attraverso i cerchi di mantenere il client connesso come un servizio o qualcosa del genere, che ho compiuto utilizzando NSSM.

Ho provato l'automazione CLI con vari client tra cui bitvise e winscp.com. Ho anche provato queste librerie di classi .net: Winscp, SSH.NET, SharpSSH e il client commerciale SFTP SecureBlackBox.

SecureBlackBox ha funzionato bene, ma è molto pesante, può essere molto costoso a seconda delle licenze e non ero d'accordo con la sua API.

Giù le mani, il miglior client sftp gratuito per lo sviluppo .NET è winscp. Ho scritto un paio di classi e metodi di estensione per rendere più facile lavorare con esso: Winscp.Extensions

69

Ho cercato in giro e ha scoperto che this fork of SharpSSH e SSH.NET sono i più aggiornati e le librerie meglio conservata per SFTP (da non confondere con FTPS) comunicazione in .NET. SSH.NET è un'implementazione .NET 4.0 pulita del protocollo SFTP e l'ho utilizzata in un paio di soluzioni con colori brillanti e grande successo.

L'originale SharpSsh sembra essere morto e molte altre soluzioni richiedono l'installazione di eseguibili di Windows o un carico di cassa (o peggio, entrambi).

+5

Ho anche usato SSH.NET (http: //sshnet.codeplex. it /) e l'ho trovato eccellente. – Alex

+7

Ho trovato SSH.NET per essere bacato da subito. Il controllo di file/dir esiste sempre restituito true. I numerosi problemi aperti e in aumento nella lista dei problemi mi hanno allontanato dal progetto. –

+1

@RonnieOverby Ho cercato il problema che hai menzionato sul file/dir esiste e il problema non esiste più. Ho scritto il codice per testare SSH.NET e funziona come previsto. – Colin