You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从公钥或MD5指纹派生计算SHA256指纹

问题根因

SAP SuccessFactors导出的公钥为RFC 4716标准的SSH2格式,和OpenSSH工具默认兼容的单行ssh-rsa/ssh-ed25519开头的公钥格式不匹配,直接执行ssh-keygen -lf自然会报「not a public key file」的错误。你看到的begin ssh2 public key就是这类格式的文件头标识,标准RFC4716格式公钥的头尾应该是4个横杠包裹的结构:

---- BEGIN SSH2 PUBLIC KEY ----
<多行排列的Base64编码公钥内容>
---- END SSH2 PUBLIC KEY ----

如果拿到的文件缺了前后的横杠,手动补齐即可,否则后续转换会报格式错误。

操作方案

方案一:转换格式后计算(适合需要留存OpenSSH格式公钥的场景)

  1. 用ssh-keygen自带的格式转换能力,把SSH2公钥转成OpenSSH可识别的格式:
    ssh-keygen -i -f <你的SAP公钥文件完整路径> -m RFC4716 > converted_openssh.pub
    
    参数说明:
    • -i:指定导入非OpenSSH格式的公钥
    • -m RFC4716:明确待转换的源格式为RFC 4716标准的SSH2公钥
  2. 对转换完成的公钥计算SHA256指纹:
    ssh-keygen -lf converted_openssh.pub -E SHA256
    
    输出结果中SHA256:后面的字符串就是导入需要的指纹值。

方案二:单命令直接输出指纹(无中间文件)

如果不需要留存转换后的OpenSSH格式公钥,可以通过管道直接传递内容,一条命令拿到结果:

ssh-keygen -i -f <你的SAP公钥文件完整路径> -m RFC4716 | ssh-keygen -lf - -E SHA256

命令中的-参数是让ssh-keygen从标准输入读取公钥内容,执行完不会生成额外的中间文件。

补充说明
  • 本地计算出的SHA256指纹和SAP侧提供的MD5指纹只是哈希算法不同,二者对应同一份公钥,计算结果唯一,可以直接用于SFTP平台的公钥导入校验,不需要找SAP侧额外生成。
  • 如果转换过程提示格式错误,优先检查原公钥文件的头尾横杠是否完整、公钥内容有没有在传输过程中缺行、混入多余空格或换行。

内容的提问来源于stack exchange,提问作者TechWorkerImposter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 00:54:33