当 SHA1 禁用且 SHA2 启用时,Renci.SshNet 不再工作

问题描述 投票:0回答:2

我已经使用 Renci SSH.NET 连接到我们的 SFTP 服务器一年多了,在 SSIS 包中,没有任何问题。然后上周我开始收到失败消息,“已建立的连接被服务器中止”。我被告知 SHA1 已被禁用,仅支持 SHA2。我已经浏览了网上能找到的几乎所有内容,但没有任何效果。 SSH.NET 会不支持 SHA2 吗?我已经测试了 WinSCP 作为替代方案并且它有效,但除非必要,否则我宁愿不切换。

出于测试目的,我向桌面应用程序添加了一些代码。

错误

连接中止后,这些是客户端

ConnectionInfo
属性。

当我尝试使用 SSH.NET 时,服务器团队的一个人向我发送了此信息。

SSH2_MSG_KEXINIT
SSH2_MSG_KEXINIT
SSH2_MSG_KEXDH_INIT
SSH 协议错误:密钥交换值无效。
闭门会议

List<AuthenticationMethod> authMethods = new List<AuthenticationMethod>();
authMethods.Add(new PasswordAuthenticationMethod(uName, pWord));

ConnectionInfo cInfo = new ConnectionInfo(host,uName,authMethods.ToArray());

cInfo.HmacAlgorithms["hmac-sha2-256"] =
    new HashInfo(256, key => new SshNet.Security.Cryptography.HMACSHA256(key));

SftpClient client = new SftpClient(cInfo);
client.HostKeyReceived += (object obj, HostKeyEventArgs hke) =>
{
  hke.CanTrust = true;
}

client.Connect();
c# .net ssh sftp ssh.net
2个回答
1
投票

确实,SSH.NET 似乎还不支持 rsa-sha2-256 和 rsa-sha2-512: https://github.com/sshnet/SSH.NET/issues/825

讨论包括临时解决方法。


0
投票

从版本 2023.0.0 开始,SSH.NET 库支持 rsa-sha2-256 和 rsa-sha2-512,无需任何额外设置。

发布链接: https://github.com/sshnet/SSH.NET/releases/tag/2023.0.0

© www.soinside.com 2019 - 2024. All rights reserved.