[英]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.