2016-04-11 3 views
1

Я хочу получить отпечаток пальца, когда пользователь впервые обращается к серверу и сохранит его отпечатки пальцев (это не будет проблемой, я могу сделай это). Моя проблема заключается в том, что предполагается, что есть способ сделать это с именем ScanFingerprint(), но он не отображается, когда я его ищу.Как получить отпечаток SSH с сервера с помощью WinSCP и C#

https://winscp.net/eng/docs/library_session_scanfingerprint#parameters

Вот что я нашел, но метод не появляется, ни малейшего представления, как это сделать?

Честно говоря, я не сделал никакого кода для этого, из-за, что я пытаюсь выяснить, где этот метод, но я это, я планирую использовать его для установки SshHostKeyFingerprint свойству

TransferOptions = new TransferOptions(); 
SessionOptions = new SessionOptions(); 
MySession = new Session(); 

SessionOptions.HostName = InterfaceConnection.Host; 
SessionOptions.UserName = InterfaceConnection.UserID; 
SessionOptions.Password = InterfaceConnection.Password; 
SessionOptions.PortNumber = InterfaceConnection.Port; 

if (string.Compare(protocol.ProtocolUsed, "FTP", true) == 0)     
    SessionOptions.Protocol = WinSCP.Protocol.Ftp; 
else if (string.Compare(protocol.ProtocolUsed, "SFTP", true) == 0) 
{ 
    SessionOptions.Protocol = WinSCP.Protocol.Sftp;      
    SessionOptions.SshHostKeyFingerprint = protocol.FingerPrint;      
    SessionOptions.SshPrivateKeyPath = "C:\\TestFiles\\SshKeys\\MyLocalSSHKey";      
} 

ответ

2

Session.ScanFingerprint method можно приобрести только с WinSCP 5.9.

См https://winscp.net/tracker/1394

Для вашей конкретной проблемы кэширования на отпечатки пальцев, см Implementing SSH host key cache (known hosts) примера.

+0

Спасибо @Martin Prikryl! Awesome !! Как я вижу, вы разработчик WinSCP! Я смотрел его в .dll !! Спасибо другу! –