2016-04-07 6 views
1

Ich versuche, eine Verbindung zu einem Server mit einer SFTP-Verbindung herzustellen, aber ich versuche, mit SSH-Fingerabdruck zu authentifizieren, wenn dies nicht korrekt ist, dann sollte versuchen Sie es mit dem SFTP-Passwort.Wie SFTP authentifizieren mit Passwort oder SSH Fingerabdruck WinSCP C# .NET Assembly

Das Problem, das ich habe ist, dass beide von ihnen auf den Server zugreifen müssen, sollte das anders sein, wenn nicht der SSH-Fingerabdruck ist, dann versuchen Sie mit dem Passwort, aber nicht funktioniert.

Es gibt eine Möglichkeit, zuerst den Fingerabdruck zu validieren und wenn nicht korrekt, das Benutzerpasswort zu validieren?

Das ist, was ich habe:

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); 
} 

Es ist eine weitere Eigenschaft, dass sie eingestellt werden müssen?

Antwort

2

Sie können nicht "authentifizieren mit SSH-Fingerabdruck".


Die SessionOptions.SshHostKeyFingerprint ist verify the server's host key. Den Benutzer nicht authentifizieren.

Um den Benutzer zu authentifizieren, müssen Sie die SessionOptions.SshPrivateKeyPath verwenden.

Siehe Understanding SSH key pairs, um den Unterschied zu erfahren.


Wie für Ihre Frage. Sie können sowohl SessionOptions.SshPrivateKeyPath als auch SessionOptions.Password einstellen. WinSCP wird zuerst den privaten Schlüssel versuchen, und nur wenn das fehlschlägt, wird es auf das Kennwort zurückgreifen.

Verwandte Themen