WinSCP .NET 程序集拒绝 RSA/DSA 密钥指纹

2024-02-01

我正在尝试使用 WinSCP .NET 程序集连接到 WinSCP 服务器。我遇到的问题是它会轰炸检查主机密钥指纹。我已经创建了 RSA 密钥。我的代码如下:

var server = new WinSCP.SessionOptions();
server.UserName = "ftp_user";
server.Password = "******";
server.HostName = "192.x.x.x";
server.Protocol = WinSCP.Protocol.Sftp;
server.SshHostKeyFingerprint =
    "9f:39:52:d5:08:0c:1d:a8:02:c9:7e:44:49:7f:44:fb";

var session = new WinSCP.Session();            
session.Open(server);

At the SshHostKeyFingerprint属性分配我收到以下错误:

SSH 主机密钥指纹 “9f:39:52:d5:08:0c:1d:a8:02:c9:7e:44:49:7f:44:fb”不匹配 模式 /(ssh-rsa |ssh-dss )?\d+ ([0-9a-f]{2}:){15}[0-9a-f]{2}(;(ssh-rsa |ssh-dss )?\d+ ([0-9a-f]{2}:){15}[0-9a-f]{2})*/

如果我没看错的话,它会检查 15 个 2 个字符集,并且我会分配一个 16 个字符集。我从服务器获取了这个值。

UPDATE:我缺少的是指纹类型(ssh-dss or ssh-rsa)及其大小(1024, 2048ETC。)。因此,答案如下:

server.SshHostKeyFingerprint =
    "ssh-rsa 1024 9f:39:52:d5:08:0c:1d:a8:02:c9:7e:44:49:7f:44:fb";

如果我正确地读取正则表达式,它不会让您知道在指纹类型之后需要指纹大小。

我希望这对其他人有帮助。感谢大家的见解和意见。


你错过了ssh-rsa前缀(看起来只是可选的)和密钥大小。

您可以在以下位置获取正确格式的指纹服务器和协议信息对话框 https://winscp.net/eng/docs/ui_fsinfo:

虽然最简单的方法是使用 WinSCP GUI 功能生成代码模板 https://winscp.net/eng/docs/ui_generateurl#code具有正确的值。

详情请参阅从哪里获取 SSH 主机密钥指纹来授权服务器? https://winscp.net/eng/docs/faq_hostkey


请注意,它实际上正在查找 16 对(其中 15 对后跟一个冒号和一个尾随对)。


由于 WinSCP 5.16 实际上允许像您一样仅使用校验和。但无论如何都不建议省略键类型前缀。如果没有前缀,WinSCP 可能会与服务器就另一种(更好的)主机密钥类型达成一致,而不是您拥有校验和的主机密钥类型。那么验证显然会失败。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WinSCP .NET 程序集拒绝 RSA/DSA 密钥指纹 的相关文章

随机推荐

  • 在SAS中使用循环重命名索引列?

    我有一个数据集 其中变量为 col1 col2 col3 col15 我想将它们重命名为new1 new2 new3 new 15 我可以写15次类似的rename col1 new1 在 SAS 中 但如何使用循环实现此目的 谢谢 首先
  • pip install MySQL-python 返回无法找到 vcvarsall.bat

    我一直在努力pip install MySQL python在 Windows 7 上但它返回unable to find vcvarsall bat 我正在使用Python 3 4 我怎样才能以简单的方式完成这项工作 而无需经历安装 Vi
  • Android 如何查看版本

    我在 2 2 环境中完成了我的应用程序 当我在旧版本中安装我的 apk 时 我收到解析器错误 是否有可能显示我们自己的消息而不是解析器错误消息 据我看来 事实并非如此 做这样的事情 private int GetVersion int ve
  • 如何获取 std::thread() 的 Linux 线程 ID

    我正在玩std thread我想知道如何获得新的线程IDstd thread 我不是在谈论std thread id而是给予线程的操作系统 ID 您可以使用pstree 这仅供我所知 并且仅针对 Linux 平台 不需要可移植 我可以像这样
  • 阻止 jQuery 重复,示例已附

    我必须将 jQuery 附加到发票上 有时我必须批量打印多张发票 当这种情况发生时 我的每张发票都会出现完全相同的 jQuery 并且每次创建我不需要的额外元素时它都会运行 有没有办法让出现多次的 jQuery 仅在它最后一次出现在代码中时
  • 使用 SQL 查询查找最接近的匹配字符串及其子字符串

    我想编写一个查询 它将按顺序获取给定字符串及其子字符串的最接近的匹配字符串 例如 假设我有一列中包含所有名称的表 如果我想搜索名字 ATUL 那么结果应该首先列出所有匹配的不同名称 ATUL then ATU then AT 进而 A 最后
  • href 中的内联 JavaScript

    你怎么能做这样的事情 a href myLink a 并在单击链接时执行 href 中的 js 直接把JS代码放进去就可以了 a href fsljk a 不过 您不应该执行内联脚本 您应该不引人注目地附加事件处理程序 a href bla
  • 同时检测父视图和子视图的 Android-Touch 事件

    目前以下是我的应用程序的布局 LinearLayout Button ScrollView RelativeLayout EditText 我在所有这些之上创建了一个透明的 LinearLayout 实现了 OnTouchListener
  • Knockout 将键值对象绑定到下拉菜单

    我有以下型号 var allCategories id 1 name Red id 5 name Blue function model self this self name ko observable self categoryId k
  • 如何从 Google Play 开发者控制台删除草稿?

    我在 Google Play 开发者控制台上有一个测试草案 它是空的 没有 apk 文件 也没有描述 我只是创建它来检查一些东西 现在草稿就在这里 我找不到删除它的按钮 我怎样才能删除该草稿 我找不到任何有关它的文档 Thanks 1 if
  • 如何设置条件编译变量?

    在 C C 中 您可以在代码中定义宏 如下所示 define OLD WAY 1 尽管我从未这样做过 但我认为 C 中也可以实现同样的功能 更重要的是 在 C C 中 可以通过执行以下操作来执行一些条件编译逻辑 if OLD WAY 1 i
  • 多个 svn 项目合并到一个 git 存储库中?

    我已经开始使用 git svn 来完成我的一些工作 以便能够进行本地提交 这对于使用标准 svn 布局的项目非常有用 最近 我开始开发一个 Java 项目 该项目分为多个连接的模块 20 25 每个模块在同一个 svn 存储库中都有自己的根
  • 我怎样才能让 Decimal.TryParse 解析 0.0?

    有没有办法让 Decimal TryParse 将字符串值 0 0 或 00 00 或 000 000 解析为 0 我尝试将 NumberStyles 设置为 Any 使用 InvariantCulture decimal TryParse
  • 如何忽略 Subclipse 中的构建目录?

    构建后 我在自动生成的构建目录中得到了大量的类文件 我不想提交它们 所以我尝试使用忽略它们Team gt Add to svn ignore 但它们已经变灰了 我尝试删除构建目录Project gt Clean 但有趣的是 当我尝试提交时
  • new String(char[]) 和 char[].toString 之间的区别

    Java 中以下两个代码块的输出是不同的 我试图理解为什么 private String sortChars String s char arr s toCharArray creating new char Arrays sort arr
  • Resteasy一般启用GZIP

    我有一个 RestEasy Java EE 应用程序 当我将 GZIP 添加到组件类时 如果客户端发送 accepts gzip 则服务器答案将被压缩 有没有办法为所有组件普遍启用 gzip 我不喜欢为每个类添加注释 我正在使用 RestE
  • 十六进制增量/循环直到 FFF

    我有一个包含十六进制数字的字符串 我想增加该十六进制数字 直到达到最大数字 FFF 我如何循环才能获得起始十六进制和 FFF 之间的每个数字 我尝试将字符串转换为字节数组 但之后陷入困境 string stringHex 7A string
  • 使用 BigQuery 获取 Firebase Analytics 历史数据

    我已将 firebase 分析应用程序链接到 BigQuery 并在 app events 和 app events intraday 表下获取原始数据 使用 BigQuery 的主要要求是获取在 Firebase 分析仪表板下获得的分析数
  • 如何将Gitlab项目复制到另一个Gitlab存储库?

    我想将 GitLab 项目复制到另一个存储库 该存储库应该是完全独立来自原始项目 为此 我尝试将原来的项目fork到另一个项目中 但在原始项目中 维护者仍然可以看到分叉列表 并知道其他分叉的维护位置 我想要一个完整的副本 没有任何到主项目的
  • WinSCP .NET 程序集拒绝 RSA/DSA 密钥指纹

    我正在尝试使用 WinSCP NET 程序集连接到 WinSCP 服务器 我遇到的问题是它会轰炸检查主机密钥指纹 我已经创建了 RSA 密钥 我的代码如下 var server new WinSCP SessionOptions serve