簡體   English   中英

SSH 主機密鑰指紋...與模式不匹配...在 C# 中使用 WinSCP .NET 程序集下載文件時

[英]SSH host key fingerprint ... does not match pattern ... when using WinSCP .NET assembly in C# to download files

我正在編寫一個 C# 應用程序(如果可以的話,我希望最終創建一個 Windows 服務)來使用 SCP 從服務器下載文件(我僅限於 SCP 作為唯一的選擇)。 我正在使用 WinSCP .NET 程序集 (v 5.15.3)。

我的 PC 和服務器之間有一個 SSH 隧道,因此從命令行執行以下操作:

ssh user:server

在我的代碼中設置SshHostKeyFingerprint時遇到問題。

WinSCP.SessionOptions options = new WinSCP.SessionOptions();

options.HostName = "ip address";
options.Password = "password";
options.PortNumber = 22;
options.UserName = "username";
options.Protocol = WinSCP.Protocol.Scp;
options.SshHostKeyFingerprint = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCkVu2A3SLLdTulOQ1XyGY......"; //full ssh key    

為了便於閱讀,我縮短了 SSH 密鑰。

分配SshHostKeyFingerprint出現以下錯誤:

SSH 主機密鑰指紋“ssh-rsa 2048 AAAAB3NzaC1yc2EAA......”與模式不匹配 /((ssh-rsa|ssh-dss|ssh-ed25519|ecdsa-sha2-nistp(256|384|521))( |-))?(\\d+ )?(([0-9a-f]{2}(:|-)){15}[0-9a-f]{2}|[0-9a-zA-Z+ /]{43}=)(;((ssh-rsa|ssh-dss|ssh-ed25519|ecdsa-sha2-nistp(256|384|521))(|-))?(\\d+)?(([ 0-9a-f]{2}(:|-)){15}[0-9a-f]{2}|[0-9a-zA-Z+/]{43}=))*/

我想我分配了錯誤的 SSH 密鑰(我已經嘗試了客戶端和服務器公鑰)。 任何人都可以指出我正確的方向嗎? 謝謝。

注意:我確實嘗試使用批處理文件執行此操作,但是如果沒有登錄服務器,我無法按計划運行。

SessionOptions.SshHostKey**Fingerprint**應該是SSH主機密鑰的指紋 您正在使用完整的主機密鑰(您甚至在評論中說的內容)。

另請參閱 WinSCP 常見問題解答我從哪里獲得 SSH 主機密鑰指紋來授權服務器?


WinSCP GUI 可以為您生成正確的代碼模板,包括指紋(假設您至少登錄過一次):

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM