2017-08-17 42 views
1

WinSCP .NETアセンブリからFTPからファイルをダウンロードする必要があります。私は現在このコードを持っていますが、エラーは認証に失敗したと言います。WinSCPでFTPからファイルをダウンロードするコード.NETアセンブリが接続されていませんがWinSCPのGUIで接続できます

try 
{ 
    SessionOptions sessionOptions = new SessionOptions 
    { 
     Protocol = Protocol.Ftp, 
     HostName = "172.xx.xxx.xx", 
     UserName = "usersample", 
     Password = "[email protected]", 
     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(わからない) 資格情報を手動で試してみました。私はログインすることができます。 助けてください。ありがとうございました。

答えて

2

を:
Why I cannot connect/transfer using script, when I can using GUI (or vice versa)?


イージー最初の解決策は、あなたのGUIセッションからGenerate transfer code関数を使用して、動作するコードテンプレートを取得することです。

  • GUIでログインします。
  • ダウンロードするファイルをリモートパネルで選択し、ターゲットローカルディレクトリをローカルパネルで選択します。
  • 使用コマンドをダウンロードします。
  • Download transfer options dialogには、を使用してください。転送設定>コードを生成;
  • Generate transfer code dialogが開きます。 .NETアセンブリタブを選択し、C#言語が選択されていることを確認します。

    enter image description here

+0

OMG。あなたは私の人生を救っただけです。どうもありがとうございました。私はあなたの前立てされた指示に従って、今働いています。 – theo

+0

はい、あなたは正しいです。見逃した。 –

0

SSH接続の認証情報に加えて、SSHホストキーの指紋が必要です。

サーバー管理者の資格情報 と一緒にSSHホストのキー指紋を取得する必要があります。ホストの鍵の指紋を知っているので、それを確認できるのは です.SSH の接続を確保するための不可欠な部分です。これは、中間者の攻撃を防ぎます。

これは、あなたのホストキーを取得するのを助けることができる:WinSCPのよくある質問は、状況のあなたのようなもののためにあります

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

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

+0

OPはないSSH(SFTP)FTPを使用しています。 –

関連する問題