c# - 如何使用 WinSCP 和 C# 从服务器获取 SSH 指纹

标签 c# ssh sftp winscp winscp-net

我想在用户第一次访问服务器时获取指纹,然后保存那个指纹(这不会有问题,我可以做到)。我的问题是,应该有一种名为 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)示例。

关于c# - 如何使用 WinSCP 和 C# 从服务器获取 SSH 指纹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36559537/

相关文章:

c# - 在 WPF 应用程序 c# 或 vb.net 中读取 jpg、调整大小、另存为 png

c# - 使用刷新 token 和 native 应用程序客户端 ID 获取访问 token

java - JSch是否需要安装sftp/ssh客户端

java - Camel SFTP - 无法将目录更改为 '/'

python - 使用 Paramiko 进行多因素身份验证(密码和 key )

.net - 如何向 .NET 应用程序添加安全的 FTP 功能

c# - 如何正确捕获调用存储过程的返回值

c# 6 主构造函数

ssh - 如何在windows机器中生成known_host文件

linux - 如何使用 ssh 在远程 linux 机器(AWS ec2 实例)上运行本地 .sh 文件(存在于本地 linux 机器上)