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"?
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).
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.
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?
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.
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.
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
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 .
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.
Respostas:
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
SharpSshparece 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).fonte
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.
fonte
Confira: http://www.tamirgal.com/home/dev.aspx?Item=sharpSsh
fonte
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.
fonte
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
fonte
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 .
fonte
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.
fonte
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.
fonte