将Ed25519转换为RSA指纹(或如何查找SSH指纹)

5

BizTalk将内部SFTP测试的指纹视为 ssh-rsa 2048 33:88:f0:ff:63:78:a9:2b:3f:09:cb:05:81:db:59:86

WinSCP显示:ssh-ed25519 256 ff:2e:5e:33:7a:15:de:69:18:cf:82:ae:f0:4e:7b:d2 (当我点击“会话”,然后“服务器/协议信息”时)

是否有可能将一个转换为另一个? 是否可以从WinSCP、PuTTY或其他工具获取ssh-rsa指纹?

2个回答

5
WinSCP使用Ed25519主机密钥。它与BizTalk使用的RSA主机密钥不同。您不能将一个转换为另一个。
WinSCP默认使用Ed25519主机密钥,因为它比RSA更受欢迎。您只能使用原始会话设置HostKey来使WinSCP使用RSA。

如果您可以通过SSH终端(例如PuTTY)连接到服务器,则可以使用ssh-keygen显示RSA主机密钥的指纹:

ssh-keygen -l -f /etc/ssh/ssh_host_rsa_key

(这假设您使用OpenSSH在常见的*nix服务器上)

请注意,只有在事先验证了SSH终端使用的主机密钥之后,此操作才有意义。

请参阅WinSCP FAQ中我在哪里获取SSH主机密钥指纹以授权服务器?,其中涵盖了所有内容。


4
ssh-rsa 2048 33:88:f0:ff:63:78:a9:2b:3f:09:cb:05:81:db:59:86 

并且
ssh-ed25519 256 ff:2e:5e:33:7a:15:de:69:18:cf:82:ae:f0:4e:7b:d2

这两个指纹属于相同的类型,但使用不同种类的密钥(一个是RSA,另一个是椭圆曲线的ED25519)。它们之间没有任何联系,因为它们是来自不同密钥的指纹。


你有什么参考资料可以帮助我更多地了解吗?只有一个私钥,对吧?但是它在每种通信类型中可能会有不同的指纹,是这样吗? - NealWalters
而且,那么获取RSA指纹的唯一方法是连接到RSA,因为显然BizTalk这样做而WinSCP不这样做? - NealWalters
通常情况下,服务器有多个不同类型(RSA、DSA、ECDSA、ED25519)的主机密钥(私钥)。每个密钥都有一个对应的公钥,其指纹是从中计算出来的。如果需要更详细信息,可以从SSH协议架构和RFC开始:https://www.openssh.com/specs.html - Jakuje
这是相反的情况。WinSCP使用Ed25519进行通信,但BizTalk不支持,因此它会回退到RSA,但您应该能够强制其使用RSA。 - Jakuje
2
好的。看起来无法配置WinSCP,因此获取服务器主机密钥的最简单方法是在Linux中使用“ssh-keyscan server | ssh-keygen -l -f - -E md5”。第一部分列出服务器公钥,第二部分将它们转换为指纹,您可以将其与已有的指纹进行比较。但请注意,它们通过不安全的网络传输,因此可能会被攻击。如果您想确保连接到正确的服务器,请直接从服务器所有者/管理员获取指纹! - Jakuje

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接