2016-04-07 10 views
1

SFTP接続を使用してサーバーに接続しようとしていますが、SSHフィンガープリントで認証しようとしています。 SFTPパスワードで試行してください。パスワードまたはSSHフィンガープリントを使用してSFTP認証を行う方法WinSCP C#.NETアセンブリ

SSHの指紋ではなく、パスワードを試しても動作していないのであれば、両方がサーバにアクセスする必要があります。

最初に指紋を検証する方法があります。正しくない場合は、ユーザーのパスワードを検証しますか?

これは私が持っているものです。

public string FilesSFTP_FTP() 
{   
    TransferOptions TransferOption = new TransferOptions(); 
    TransferOperationResult TransferResult; 
    SessionOptions sessionoptions = new SessionOptions(); 
    Session session = new Session(); 

    if (DataFile.sTransportType == "S") 
    { 
     sessionoptions.Protocol = Protocol.Sftp; 
     sessionoptions.PortNumber = 22; 
     sessionoptions.SshHostKeyFingerprint = DataFile.sFingerPrint; 
    } 
    else if (DataFile.sTransportType == "F") 
    { 
     sessionoptions.Protocol = Protocol.Ftp; 
     sessionoptions.PortNumber = 21; 
    } 

    sessionoptions.HostName = DataFile.sIPAddress; 
    sessionoptions.UserName = DataFile.sUserID; 
    sessionoptions.Password = DataFile.sPassword; 
    TransferOption.TransferMode = TransferMode.Binary; 
    TransferOption.PreserveTimestamp = false; 
    TransferOption.ResumeSupport.State = TransferResumeSupportState.Off; 

    session.Open(sessionoptions); 
} 

それは設定する必要が別のプロパティがありますか?

答えて

2

「SSHフィンガープリントで認証する」できません。


SessionOptions.SshHostKeyFingerprintverify the server's host keyにあります。ユーザーを認証しません。

ユーザーを認証するには、SessionOptions.SshPrivateKeyPathを使用する必要があります。

Understanding SSH key pairsを参照してください。


ご質問ください。 SessionOptions.SshPrivateKeyPathSessionOptions.Passwordの両方を設定できます。 WinSCPは最初に秘密鍵を試し、失敗した場合にのみパスワードに戻ります。