簡體   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