十六进制格式的公钥,转换为base64

alm*_*Bob 4 openssh cryptography rsa

嗨,我是密码学新手,不知道如何做到这一点。所以我从 Putty 会话中获得了一个公钥,它看起来像这样:

0x23,0xa69e43f72f1d8f07a6baae6ea0b0ce81cbe949345a0a5e307ae89e9cf58b20a17571af39e951faf61c45ef2ca9e21897eb9bc226473783ed9c3f6e30c4a84fa6253 73af96f41f8d9670484b52a33072eae6bb5433a2f00c672c20d7a03636a1b26af15b0d3ed376b9699e8653caa198637be88282333e8038bed63b9a2c6d179

通过搜索互联网,我发现以下线程中出现了相同的格式,所以我知道第一个十六进制值是指数,第二个值是模数。但我找不到任何关于如何使用两者来获取简单公钥的信息。 http://winscp.net/forum/viewtopic.php?t=5850

我的问题是:如何将密钥从 ergo base64 转换为标准 openssh?

希望有人可以帮忙。

Paŭ*_*ann 5

在不同格式之间转换密钥的常用方法是使用相应程序的密钥生成程序,该程序通常也有一些转换选项。

在您的情况下,可以使用 PuttyGen 程序将 Putty 密钥转换为其他格式。

文档解释了如何以 GUI 方式执行此操作(您需要将公钥粘贴到authorized_keys 文件格式中)。

在 Ubuntu 上使用 PuTTY ssh 密钥和 OpenSSH似乎也显示了执行此操作的命令行方式:

puttygen /path/to/puttykey.ppk -L > ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)

(我没有尝试这个,那里的评论之一说它不能以这种方式工作 - 请查看文档。)