Librerie SFTP per .NET [chiuse]


109

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 utilizzato alcuna libreria SFTP prima, quindi non sono sicuro di cosa sto cercando.

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



Esiste una libreria SFTP con licenza MIT?
Yash Saraiya,

Puoi controllare la recensione dettagliata per il componente SFTP per NET sul sito www.ownloadplanet.com/reviews/…
alexanoid

Risposte:


87

Ho cercato in giro e l'ho trovato questo fork di SharpSSHe SSH.NET sono le librerie più aggiornate e meglio mantenute per la comunicazione SFTP (da non confondere con FTPS ) in .NET. SSH.NET è un'implementazione pulita .NET 4.0 del protocollo SFTP, e l'ho usato in un paio di soluzioni a pieni voti e con grande successo.

L'originale SharpSsh sembra essere morto e la maggior parte delle altre soluzioni richiedono l'installazione di eseguibili di Windows o un secchio di denaro (o peggio; entrambi).


6
Ho anche usato SSH.NET ( sshnet.codeplex.com ) e l'ho trovato eccellente.
Alex

10
Ho scoperto che SSH.NET è pieno di bug fin dall'inizio. Il controllo dell'esistenza di file / directory ha sempre restituito true. I molti problemi aperti e votati nella lista dei problemi mi hanno escluso dal progetto.
Ronnie Overby

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

4
Anche il fork SharpSSH è morto (ultimo aggiornamento a settembre 2012).
Martin Prikryl

3
Grazie, dopo averli confrontati SSH.NET sembra essere più pulito e più facile da usare. Aggiornerò la mia risposta al termine del progetto in cui li sto utilizzando. Grazie,
Nour Lababidi

52

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

Aggiornamento: con la v.5.0, WinSCP ha una libreria wrapper .NET per il livello di scripting di WinSCP.


1
Mi sembra abbastanza buono: winscp.net/eng/docs/library#example
Jon Cage

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

WinSCP è concesso in licenza con GPL. C'è qualcosa con cui posso lavorare con licenza MIT?
Yash Saraiya,


1
Non va bene, winscp è legato a .exe, che è poco raccomandabile per lo sviluppo multipiattaforma.
Alwyn

9

Controlla questo: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh

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

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

SharpSSH ti consente di leggere / scrivere dati e trasferire file su canali SSH utilizzando un'API simile all'API di JSch. Inoltre, fornisce alcune classi wrapper aggiuntive che offrono un'astrazione ancora più semplice per la comunicazione SSH.

Pagina del progetto SharpSSH su source forge: http://sourceforge.net/projects/sharpssh


9
roba interessante, ma non si aggiorna dal 2007, serve smth per .net 4
Johnny_D

1
Vedi la mia risposta per qualcosa che viene aggiornato e mantenuto attivamente.
Asbjørn Ulsberg

10
Ho usato questa libreria e non la consiglio. Funzionava, ma sembrava un port incompleto: mancavano alcune funzionalità nelle classi di primo livello (verificare se i file esistevano IIRC), e dovevo chiamare metodi su campi privati ​​per farli funzionare; blocchi di codice Java commentati lasciati nel sorgente; classi wrapper che prendono il nome da quelle nella libreria standard Java; Idiomi Java ovunque. Ho usato SSH.NET invece (come nel post di @ asbjornu) con grande successo.
Alex

8

Abbiamo acquistato un Rebex File Transfer Pack e tutto va bene. L'API è semplice, non abbiamo alcun problema con le comunicazioni, i server proxy ecc ...

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


Tieni presente che SFTP e FTPS non sono lo stesso protocollo.
Trento

6

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 lo sto testando per i miei scopi e aggiornerò con i miei risultati.

aggiornare

Questa idea non è l'ideale per l'automazione non presidiata, a meno che tu non voglia saltare attraverso i cerchi mantenendo il client connesso come un servizio o qualcosa del genere, cosa che ho realizzato utilizzando NSSM .

Ho provato l'automazione della 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 SFTP SecureBlackBox commerciale.

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

Senza dubbio, il miglior client sftp gratuito per lo sviluppo .NET è winscp . Ho scritto alcune classi e metodi di estensione per semplificare il lavoro: Winscp.Extensions


4

Sto usando la libreria SFTP nativa di Chilkat ( http://www.chilkatsoft.com/ssh-sftp-component.asp ) da un paio di mesi e funziona benissimo. L'ho utilizzato in un lavoro notturno per scaricare file di grandi dimensioni ed eseguire l'autenticazione con chiave privata. L'unico problema che ho avuto è stato far funzionare la versione a 64 bit su Windows Server 2008, dovevo installare vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) sul mio server .


2
Chilkat non è un codice gestito al 100%. È una libreria nativa racchiusa in .NET. Quando abbiamo incorporato questa libreria ha rotto il web designer dello studio visivo perché VS funziona in modalità a 32 bit. Abbiamo dovuto creare tutte queste soluzioni tra dev e prod (che è a 64 bit) in modo che possa usare la DLL giusta, non divertente. Il lavoro richiede che il GAC abbia sia la DLL a 32 che quella a 64 bit installate sui computer di
Chris Smith

0

Per un supporto SFTP completo in .NET, prova edtFTPnet / PRO . È in circolazione da molto tempo con il supporto per molti server SFTP diversi.

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


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

0

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.