我正在尝试从我的known_hosts文件中提取ssh用于验证主机的ECDSA公钥。我下面以一个为例。
这是我的known_hosts文件中的“127.0.0.1 ecdsa-sha2-nistp256”条目:

我通过Base64解码器运行它以获取此信息:

因此,我假设那些问号是某种分隔符(不,是长度)。我认为nistp256是使用的椭圆曲线,但是最后一个值到底是什么?
根据我的阅读,ECDSA的公钥有一对值x和y,它们代表曲线上的一个点。有什么方法可以从中提取x和y吗?
我正在尝试将其转换为Java公钥对象,但我需要x和y才能这样做。

最佳答案

由于它们是二进制,因此未显示所有字符。将Base64解码的值写入文件,然后在十六进制编辑器中将其打开。
P256曲线的公钥应为65字节的数组,从值4的字节开始(这表示未压缩的点)。接下来的32个字节为x值,接下来的32个为y值。

关于ssh - 'known_hosts'文件中的ECDSA条目有哪些部分?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14782440/

10-14 06:45