[英]Download file from SFTP with p12 certificate in C#
我尝试搜索以上内容并找到SSH.NET,但不确定:
我有一个带有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.