簡體   English   中英

無法使用WinSCP .NET程序集從FTP下載文件的代碼無法連接,但是我可以在WinSCP GUI中進行連接

[英]Code to download file from FTP with WinSCP .NET assembly does not connect, but I can connect in WinSCP GUI

我需要通過WinSCP .NET程序集從FTP下載文件。 我目前有此代碼,但錯誤提示身份驗證失敗。

try
{
    SessionOptions sessionOptions = new SessionOptions
    {
        Protocol = Protocol.Ftp,
        HostName = "172.xx.xxx.xx",
        UserName = "usersample",
        Password = "P@ssw0rd",
        PortNumber = 21
    };

    using (Session session = new Session())
    {
        // Connect
        session.Open(sessionOptions);

        // Download files
        TransferOptions transferOptions = new TransferOptions();
        transferOptions.TransferMode = TransferMode.Binary;

        TransferOperationResult transferResult;
        transferResult =
            session.GetFiles(
                "/HST/sample.txt", "C:\\Users\\john\\Documents\\SampleFolder\\",
                false, transferOptions);

        // Throw on any error
        transferResult.Check();

        // Print results
        foreach (TransferEventArgs transfer in transferResult.Transfers)
        {
            Console.WriteLine("Download of {0} succeeded", transfer.FileName);
        }

        Console.ReadLine();
    }

}
catch (Exception e)
{
    Console.WriteLine("Error: {0}", e);
    Console.ReadLine();
}

我從此參考中獲得了代碼: https : //winscp.net/eng/docs/library_session_getfiles

最初,它具有以下功能:

SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"

但是我刪除了它,因為我沒有它,而且我認為它是針對SFTP的(不確定),我已經手動嘗試過憑據,它們可以工作。 我可以登錄。 請幫忙。 謝謝。

針對您的情況有WinSCP常見問題解答:
為什么可以使用GUI時無法使用腳本進行連接/傳輸(反之亦然)?


首先,最簡單的解決方案是在GUI會話中使用“ 生成傳輸代碼”功能,以獲得有效的代碼模板。

  • 登錄GUI;
  • 在遠程面板中選擇要下載的文件,在本地面板中選擇目標本地目錄;
  • 使用下載命令;
  • 下載傳輸選項對話框中 ,使用傳輸設置>生成代碼 ;
  • 生成傳輸代碼對話框打開。 選擇.NET程序集選項卡 ,並確保選擇了C#語言。

    在此處輸入圖片說明

除了用於SSH連接的憑據之外,您還需要SSH主機密鑰指紋。

您應該從服務器管理員處獲得SSH主機密鑰指紋以及憑據。 知道主機密鑰指紋並因此能夠對其進行驗證是保護SSH連接不可或缺的一部分。 它可以防止中間人攻擊。

這可以幫助您獲取主機密鑰:

https://winscp.net/eng/docs/faq_hostkey

https://winscp.net/eng/docs/ui_fsinfo

暫無
暫無

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

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