在尝试使用C#实现SFTP连接时,我遇到了一些问题。目前,我可以使用WinSCP连接我的主机、端口、登录名、密码和密钥文件(ppk文件)。
我的实现方式与使用WinSCP .NET相同:
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "",
UserName = "",
SshHostKeyFingerprint = "",
SshPrivateKeyPath = "",
PrivateKeyPassphrase = ""
};
using (Session session = new Session ())
{
session.Open (sessionOptions);
}
在
session.Open
中我总是收到异常。当我不填写SshHostKeyFingerprint
参数时,我会收到以下异常:
然后我用PuTTYgen打开了我的ppk文件。之后我复制了“密钥指纹”,并将其放入代码中。现在我收到了以下异常:SessionOptions.Protocol为Protocol.Sftp或Protocol.Scp,但SessionOptions.SshHostKeyFingerprint未设置。
这是什么意思?这意味着我必须在服务器上拥有此密钥吗?如果是这样,在哪里应该放置此密钥?在这种情况下,为什么我可以通过WinSCP连接而不传递此指纹?主机密钥与配置的密钥不匹配
谢谢!