SSH主机密钥指纹与模式C#WinSCP不匹配
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SSH主机密钥指纹与模式C#WinSCP不匹配,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2302字,纯文字阅读大概需要4分钟。
内容图文
![SSH主机密钥指纹与模式C#WinSCP不匹配](/upload/InfoBanner/zyjiaocheng/796/39355d9557ed4f0c8d26f003cc754204.jpg)
我试图通过WinSCP使用C#连接到FTPS服务器,我收到此错误:
SSH host key fingerprint … does not match pattern …
经过大量的研究,我认为这与关键的长度有关.当我使用“服务器和协议信息”下的接口连接时从WinSCP获得的密钥是
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx但我在示例中看到的更短像这个xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
有人可以请帮助,并提供任何指针,以解决这一点将不胜感激.
这是我的代码
string winscpPath = "C:\\Program Files (x86)\\WinSCP\\WinSCP.exe";
string username = "User123";
string password = "abc1234";
string ftpSite = "192.168.5.110";
string localPath = "C:\\Users\\ttom\\Documents";
string remoteFTPDirectory = "/Usr/thisfolder";
string sshKey = "1b:68:10:80:77:c6:65:91:51:31:5t:65:1c:g6:13:20:39:g8:d8:6d";
Boolean winSCPLog = true;
string winSCPLogPath = "C:\\Users\\ttom\\Documents\\Visual Studio 2015\\Projects\\WebApplication1\\WebApplication1";
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = ftpSite,
UserName = username,
Password = password,
SshHostKeyFingerprint = sshKey
};
using (Session session = new Session())
{
// WinSCP .NET assembly must be in GAC to be used with SSIS,
// set path to WinSCP.exe explicitly, if using non-default path.
session.ExecutablePath = winscpPath;
session.DisableVersionCheck = true;
if (winSCPLog)
{
session.SessionLogPath = @winSCPLogPath + @"ftplog.txt";
session.DebugLogPath = @winSCPLogPath + @"debuglog.txt";
}
// Connect
session.Timeout = new TimeSpan(0, 2, 0); // two minutes
session.Open(sessionOptions);
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
session.GetFiles(remoteFTPDirectory + "/" +
"test.txt", localPath, false, transferOptions);
}
解决方法:
您正在使用代码中的SFTP(通过SSH)进行连接,但在GUI中使用FTPS(FTP over TLS / SSL).
这是两个completely different protocols.
使用Protocol = Protocol.Ftp并使用FtpSecure = FtpSecure.Explicit启用TLS / SSL.
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Ftp,
FtpSecure = FtpSecure.Explicit,
HostName = ftpSite,
UserName = username,
Password = password,
};
FTPS的等效SshHostKeyFingerprint是TlsHostCertificateFingerprint.但是,只有当TLS / SSL证书未由受信任的机构(例如自签名证书)签名时,才需要使用它.
最简单的是为你准备WinSCP GUI generate code.
内容总结
以上是互联网集市为您收集整理的SSH主机密钥指纹与模式C#WinSCP不匹配全部内容,希望文章能够帮你解决SSH主机密钥指纹与模式C#WinSCP不匹配所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。