如何使用 WinSCP 和 C# 从服务器获取 SSH 指纹
How to get the SSH fingerprint from a server with WinSCP and C#
我想在用户第一次访问服务器的时候获取指纹,然后保存那个指纹(这不会有问题,我可以做到)。我的问题是应该有一种叫做 ScanFingerprint()
的方法,但是当我搜索它时没有显示那个方法。
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";
}
Session.ScanFingerprint
method 仅适用于 WinSCP 5.9。
见https://winscp.net/tracker/1394
有关缓存指纹的具体问题,请参阅 Implementing SSH host key cache (known hosts) 示例。
我想在用户第一次访问服务器的时候获取指纹,然后保存那个指纹(这不会有问题,我可以做到)。我的问题是应该有一种叫做 ScanFingerprint()
的方法,但是当我搜索它时没有显示那个方法。
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";
}
Session.ScanFingerprint
method 仅适用于 WinSCP 5.9。
见https://winscp.net/tracker/1394
有关缓存指纹的具体问题,请参阅 Implementing SSH host key cache (known hosts) 示例。