2016-04-07 5 views
1

Я пытаюсь подключиться к серверу с SFTP-соединением, но я пытаюсь выполнить аутентификацию с помощью отпечатка SSH, если это неверно, тогда попытку с паролем SFTP.Как аутентифицировать SFTP с использованием пароля или SSH-отпечатка 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

Вы не можете "authenticate with SSH fingerprint".


SessionOptions.SshHostKeyFingerprint является verify the server's host key. Не выполнять аутентификацию пользователя.

Для аутентификации пользователя вам необходимо использовать SessionOptions.SshPrivateKeyPath.

См. Understanding SSH key pairs, чтобы узнать разницу.


Что касается вашего вопроса. Вы можете установить как SessionOptions.SshPrivateKeyPath, так и SessionOptions.Password. WinSCP сначала попробует закрытый ключ, и только если это не удастся, оно вернется к паролю.

 Смежные вопросы

  • Нет связанных вопросов^_^