Bibliotecas SFTP para .NET [fechado]

109

Alguém pode recomendar uma boa biblioteca SFTP para usar? No momento, estou procurando produtos como SecureBlackbox, IPWorks SSH, WodSFTP e Rebex SFTP. No entanto, nunca usei nenhuma biblioteca SFTP antes, então não tenho certeza do que estou procurando.

Se alguém já usou isso antes, há algum motivo para eu escolher o produto "X" em vez de "Y"?

Kiquenet
fonte
Existe uma biblioteca SFTP licenciada pelo MIT?
Yash Saraiya
Você pode verificar a análise detalhada do componente SFTP para NET thedownloadplanet.com/reviews/…
alexanoid

Respostas:

87

Eu procurei e encontrei isso este garfo de SharpSSHe SSH.NET são as bibliotecas mais atualizadas e melhor mantidas para comunicação SFTP (não deve ser confundida com FTPS ) em .NET. SSH.NET é uma implementação limpa do .NET 4.0 do protocolo SFTP, e eu a usei em algumas soluções com grande sucesso e muito sucesso.

O original SharpSsh parece estar morto e a maioria das outras soluções requer a instalação de executáveis ​​do Windows ou um monte de dinheiro (ou pior; ambos).

Asbjørn Ulsberg
fonte
6
Eu também usei SSH.NET ( sshnet.codeplex.com ) e achei excelente.
Alex
10
Descobri que o SSH.NET tem muitos bugs logo de cara. A verificação de existência de arquivo / dir sempre retornou verdadeiro. As muitas questões abertas e votadas na lista de questões me afastaram do projeto.
Ronnie Overby
1
@RonnieOverby Procurei o problema que você mencionou sobre a existência de arquivo / dir e o problema não existe mais. Escrevi código para testar SSH.NET e funciona conforme o esperado.
Colin
4
O fork SharpSSH também está morto (última atualização em setembro de 2012).
Martin Prikryl,
3
Obrigado, Depois de compará-los, o SSH.NET parece ser mais limpo e fácil de usar. Vou atualizar minha resposta depois de terminar o projeto em que estou usando. Obrigado,
Nour Lababidi
52

Usamos WinSCP. É grátis. Não é uma biblioteca, mas tem uma interface de linha de comando bem documentada e cheia de recursos que você pode usar com Process.Start.

Atualização: com a v.5.0, o WinSCP tem uma biblioteca .NET wrapper para a camada de script do WinSCP.

Jim
fonte
1
Parece muito bom para mim: winscp.net/eng/docs/library#example
Jon Cage
4
Usei com sucesso o assembly WinSCP .NET (winscpnet.dll), wrapper na interface de script WinSCP. Sim, realmente, está bem documentado. Tem muitos exemplos. Se você passar parâmetros incorretos, o wrapper lança uma exceção detalhando o que está errado. Levei algumas tentativas e erros para acertar os parâmetros, sem culpa do WinSCP, apenas minha confusão entre ftps e sftp. Além disso, lembre-se de copiar WinSCP.exe para a pasta bin do aplicativo; ou você pode definir Session.ExecutablePath antes de chamar Session.Open ().
Edward
WinSCP é licenciado sob GPL. Posso trabalhar com algo licenciado pelo MIT?
Yash Saraiya
1
@YashSaraiya WinSCP .NET assembly é licenciado sob MPL 2.0 , não GPL.
Martin Prikryl
1
Não é bom, o winscp está vinculado ao .exe, que é complicado para o desenvolvimento de várias plataformas.
Alwyn
9

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

SharpSSH é uma implementação .NET pura do conjunto de protocolos do cliente SSH2. Ele fornece uma API para comunicação com servidores SSH e pode ser integrado a qualquer aplicativo .NET.

A biblioteca é uma porta C # do projeto JSch da JCraft Inc. e é lançada sob a licença do estilo BSD.

SharpSSH permite que você leia / grave dados e transfira arquivos em canais SSH usando uma API semelhante à API JSch. Além disso, ele fornece algumas classes de wrapper adicionais que oferecem uma abstração ainda mais simples para a comunicação SSH.

Página do projeto SharpSSH no source forge: http://sourceforge.net/projects/sharpssh

GEOCHET
fonte
9
coisas legais, mas não atualizadas desde 2007, preciso smth para .net 4
Johnny_D
1
Veja minha resposta para algo que é atualizado e mantido ativamente.
Asbjørn Ulsberg 01 de
10
Usei esta biblioteca e não a recomendo. Funcionou, mas parecia uma porta incompleta: alguns recursos estavam faltando nas classes de nível superior (testando se existiam arquivos IIRC), e tive que chamar métodos em campos privados para fazê-los funcionar; pedaços comentados de código Java deixados na fonte; classes de wrapper com nomes de outras na biblioteca padrão Java; Expressões idiomáticas Java por toda parte. Em vez disso, usei SSH.NET (como na postagem de @asbjornu) com grande sucesso.
Alex
8

Compramos um Rebex File Transfer Pack e está tudo bem. A API é fácil, não temos problemas com comunicações, servidores proxy etc ...

Mas não tenho chance de compará-lo com outro componente SFTP / FTPS.

TcKs
fonte
Observe que SFTP e FTPS não são o mesmo protocolo.
Trent,
6

A Bitvise tem um ótimo produto chamado Tunnelier, que pode fazer a ponte entre FTP e SFTP. Você pode então usar o FtpWebRequest padrão no .NET.

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

No momento, estou testando isso para meus próprios fins e atualizarei com minhas descobertas.

atualizar

Essa ideia não é ideal para automação autônoma, a menos que você queira pular para manter o cliente conectado como um serviço ou algo assim, o que consegui usando NSSM .

Experimentei a automação CLI com vários clientes, incluindo bitvise e winscp.com. Também experimentei essas bibliotecas de classes .net: Winscp, SSH.NET, SharpSSH e o cliente comercial SecureBlackBox SFTP.

SecureBlackBox funcionou bem, mas é muito pesado, pode ser bastante caro dependendo do licenciamento e não concordo muito com sua API.

Sem dúvida , o melhor cliente sftp gratuito para desenvolvimento .NET é o winscp . Eu escrevi algumas classes e métodos de extensão para facilitar o trabalho com isso: Winscp.Extensions

Ronnie Overby
fonte
4

Estou usando a biblioteca SFTP nativa do Chilkat ( http://www.chilkatsoft.com/ssh-sftp-component.asp ) há alguns meses e está funcionando muito bem. Tenho usado em um trabalho noturno para baixar arquivos grandes e fazer autenticação de chave privada. O único problema que tive foi conseguir que a versão de 64 bits funcionasse no Windows Server 2008, precisei instalar o vcredist_x64.exe ( http://www.microsoft.com/download/en/details.aspx?id=14632 ) no meu servidor .

Rocklan
fonte
2
Chilkat não é um código 100% gerenciado. É uma biblioteca nativa envolvida em .NET. Quando incorporamos essa biblioteca, isso quebrou o designer da web do visual studio porque o VS roda no modo de 32 bits. Tivemos que criar todas essas soluções alternativas entre dev e prod (que é em 64 bits) para que ele possa usar a DLL certa, não divertida. A solução alternativa
Chris Smith
0

Para obter suporte SFTP abrangente em .NET, experimente edtFTPnet / PRO . Já existe há muito tempo com suporte para muitos servidores SFTP diferentes.

Também vendemos um servidor SFTP para Windows, CompleteFTP , que é uma forma econômica de obter suporte para SFTP em sua máquina Windows. Também possui FTP e FTPS.

Bruce Blackshaw
fonte
Eu uso a biblioteca edtFTPnet há algum tempo - funciona bem, mas a documentação para as ligações .net não é boa.
Jon Cage
0

Eu usei IP * Works SSH e é ótimo. Fácil de configurar e usar. Além disso, o suporte deles é excelente quando você tem dúvidas ou problemas.

Briggs
fonte