繁体   English   中英

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

[英]Download file from SFTP with p12 certificate in C#

我尝试搜索以上内容并找到SSH.NET,但不确定:

  1. 如果适合我的情况。
  2. 如何以我需要它的方式使用它。

我有一个带有SFTP的客户端-他使用普通的第三方工具(如FileZilla)连接到该客户端。

我有凭据等,需要从该SFTP下载文件。 对我来说不幸的是,SFTP需要一个p12证书(我有),我不知道该如何使用。 我尚未使用SFTP。 连接是:“交互式”

对于“普通” FTP,我只需获取FtpRequest的响应流并将其信息转换为所需的信息即可。

问题: 如何在不购买任何商业第三方库的情况下如何使用p12证书通过C#与SFTP建立连接?

我会很高兴,既有直接的技巧,也有阅读该主题的材料。

您确定要使用SFTP吗? 我从未见过有人将P12密钥与SSH / SFTP一起使用。 也许您将SFTP与FTPS [基于TLS / SSL的FTP]搞混了?

无论如何,NET.SSH库仅支持OpenSSH和ssh.com私钥文件格式。 因此,您需要将您的P12密钥转换为任意一个。

引用PKCS12文件中的提取公钥/私钥,以供以后在SSH-PK-Authentication中使用

您可以使用以下命令从PKCS#12容器中提取公钥/私钥:

  • PKCS#1私钥

     openssl pkcs12 -in yourP12File.pfx -nocerts -out privateKey.pem 
  • 证书:

     openssl pkcs12 -in yourP12File.pfx -clcerts -nokeys -out publicCert.pem 

首先,您似乎将SFTP与基于SSL的FTP混淆了。 这是两种不同的协议 从您的问题来看,您似乎需要基于SSL的FTP。

在仅需要下载文件的简单情况下,.NET的FtpWebRequest类将起作用。 在更复杂的情况下,需要第三方库。

如果您需要处理SFTP,情况会更加复杂。 SSH通常不适用于X.509证书(可以进行这种配置,但几乎从未使用过)。 开源库不会提供此功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM