如何在 C# 中使用 sftp [重复]

Posted

技术标签:

【中文标题】如何在 C# 中使用 sftp [重复]【英文标题】:How to use sftp in C# [duplicate] 【发布时间】:2011-12-26 21:22:06 【问题描述】:

可能重复:How do I upload a file to an SFTP server in C# / .NET?

.net 是否支持 sftp

我在网上找不到任何示例。

【问题讨论】:

这并不能直接回答您的问题,因为它是 ftps 的客户端,但它确实为 ftp 相关信息提供了有用的背景ftps.codeplex.com 这不再是重复的,因为旧问题被关闭为非建设性 - 尽管我不明白为什么。 SFTP 在 .NET 中不存在。就个人而言,我正在使用componentpro.com/sftp.net 库。 【参考方案1】:

我们使用SharpSSH 进行sftp,它运行良好并且是开源的。

代码示例:

sftp = new Tamir.SharpSsh.Sftp(ipAddress, username, password);
sftp.Connect();
sftp.Get(sourcePath, destinationPath);
sftp.Close();

【讨论】:

sftp 不好。首先,它不支持 64 位(不过,这是某些博客上的自定义)。二、get文件不保留原文件日期 我强烈推荐使用 sshnet.codeplex.com 而不是 SharpSSH。 SharpSSH 似乎不再被积极维护,而且相当粗糙。正因为如此,SSH.NET 应运而生。 是否有任何可用于 .NET 的积极维护的 SFTP 客户端?我需要一个在 .NET 4.5 及更高版本下也可靠的 OpenSource Lib(根据 sshnet.codeplex.com,它们只支持最高 4.0)。【参考方案2】:

我们在项目中成功地使用了Rebex components(FTP、S-FTP、FTP-S)。不过,它们是商业用途。

【讨论】:

Rebex 的东西真的很棒,他们的客户支持也是一流的。当我不得不连接一个不符合当前 FTPS 标准的 FTPS 服务器时,他们创建了一个可以免费与之通信的组件版本。

以上是关于如何在 C# 中使用 sftp [重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 C# 中使用 p12 证书从 SFTP 下载文件

如何使用 SFTP 向大型机提交/​​检索批处理作业

如何使用密码或 SSH 指纹进行 SFTP 身份验证 WinSCP C# .NET 程序集

如何在java中通过SFTP传输文件? [复制]

如何在c#中使用命令提示符运行命令[重复]

如何使用c#在cmd中运行命令[重复]