首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何与SFTP服务器通信

如何与SFTP服务器通信
EN

Stack Overflow用户
提问于 2009-12-10 21:53:50
回答 7查看 34.4K关注 0票数 14

我已经为我们的客户写了一个服务,可以使用FTP自动将文件传输到指定的目的地。由于历史原因,我使用WinInet来执行FTPing。所有这些都工作正常,但现在客户希望添加一个仅接受SFTP连接的目的地。

我真的不喜欢从头开始实现它的想法,所以有没有一种方法可以在本地或通过WinInet与SFTP服务器通信?有没有我可以使用的系统库(我不怕P/Invoke : )?我必须为此购买第三方组件吗?如果需要,您建议购买哪些组件?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-12-10 21:56:59

不幸的是,WinInet或任何其他标准的Windows库本身并不支持SFTP。

在与各种/n服务器交谈时,我很幸运地使用了SFTP软件的IP*Works SSH for .NET

票数 1
EN

Stack Overflow用户

发布于 2017-08-13 17:01:35

在任何版本的.NET框架中都不支持SFTP。

您必须为SFTP使用第三方库。

您可以使用WinSCP .NET assembly。甚至还有一个WinSCP NuGet package

一个简单的SFTP上传C#示例:

代码语言:javascript
运行
复制
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
    Protocol = Protocol.Sftp,
    HostName = "example.com",
    UserName = "user",
    Password = "mypassword",
    SshHostKeyFingerprint = "ssh-rsa 2048 xxxxxxxxxxx...="
};

using (Session session = new Session())
{
    // Connect
    session.Open(sessionOptions);

    // Upload files
    session.PutFiles(@"d:\toupload\*", "/home/user/").Check();
}

这里有lot of other examples

你可以像上面那样使用WinSCP GUI generate an SFTP code template,包括C#、VB.NET和PowerShell。

该程序集只是WinSCP脚本的包装器,因此它不是完全原生的.NET代码。因此,它并不适合.NET框架中的所有用例。它最适合于自动化任务,有点适合开发GUI应用程序,而不是真正的web应用程序。

有关完全原生的.NET SFTP库,请参阅SSH.NET,奇怪的是,在任何答案中都没有提到它。

(我是WinSCP的作者)

Windows10也附带了command-line OpenSSH sftp client。对于较旧版本的Windows,也可以下载。

票数 23
EN

Stack Overflow用户

发布于 2017-09-20 10:07:43

我使用WinSCP创建了一个与SFTP服务器交互的演示。

这个应用程序能够上传,删除,重命名和获取文件系统的信息在SFTP服务器使用WinSCP .NET程序集。

看一下:https://github.com/ducfilan/SFTP-with-WinSCP

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1881122

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档