加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 将openssh公钥转换为ssh2(RFC 4716)格式

发布时间:2020-12-15 03:01:11 所属栏目:Java 来源:网络整理
导读:主要问题就在于此.将openssh公钥解析为符合 rfc 4716 格式.唯一的问题是,它必须在java中. 使用ssh-keygen,它只是单行命令: ssh-keygen -e -f openssh_key.pub 不幸的是,我在Java中找不到任何其他来源.甚至没有提到转换所需的任何算法或步骤.所有这些都围绕
主要问题就在于此.将openssh公钥解析为符合 rfc 4716格式.唯一的问题是,它必须在java中.

使用ssh-keygen,它只是单行命令:

ssh-keygen -e -f openssh_key.pub

不幸的是,我在Java中找不到任何其他来源.甚至没有提到转换所需的任何算法或步骤.所有这些都围绕着ssh-keygen本身的使用.当然,我可以使用java.exec来调用命令,但这是最糟糕的情况.

示例openssh密钥(已将其保留为代码格式,以便保留生成的空格/换行符):

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDwxgE7D3HYLYddNHLMFK8OfpRwwUSgxiB8fbecvkCUEktSpWikvsWTyCnl5p3uSmsGg/F1lwVPXuuVlQ4VZlYqMuEBEMRF9ADdXWWNxjO/Hd7688ow7ocncxl0xKXsH5Fc9GHvE8yfUh94F8Qm9x8M8Uux+XsNEvPG8KI/QUJWndIsHv+m//3nbEEqUTAlzsyY0mjHW/dPORhXcB5WeGH+cBRAhcp5JGKAq26TOsuNY8H+nrlxX6z03xbUN28HHdXv6uKZfpnVpl6tM0khxbh7F+tLYWeUIZ+nYaDBPINv8Mkd6Duqe/GOLtgVUIR76Adijok4w5oaKlTq27xzMurl kaushik@kaushik-HP

使用ssh-keygen解析:

---- BEGIN SSH2 PUBLIC KEY ----
Comment: "2048-bit RSA,converted by kaushik@kaushik-HP from OpenSSH"
AAAAB3NzaC1yc2EAAAADAQABAAABAQDwxgE7D3HYLYddNHLMFK8OfpRwwUSgxiB8fbecvk
CUEktSpWikvsWTyCnl5p3uSmsGg/F1lwVPXuuVlQ4VZlYqMuEBEMRF9ADdXWWNxjO/Hd76
88ow7ocncxl0xKXsH5Fc9GHvE8yfUh94F8Qm9x8M8Uux+XsNEvPG8KI/QUJWndIsHv+m//
3nbEEqUTAlzsyY0mjHW/dPORhXcB5WeGH+cBRAhcp5JGKAq26TOsuNY8H+nrlxX6z03xbU
N28HHdXv6uKZfpnVpl6tM0khxbh7F+tLYWeUIZ+nYaDBPINv8Mkd6Duqe/GOLtgVUIR76A
dijok4w5oaKlTq27xzMurl
---- END SSH2 PUBLIC KEY ----

更新:我为有类似需求的人创建了一个implementation of the conversion on gist.

解决方法

两种格式的Base64数据完全相同 – 您不需要做任何花哨的事情.您需要做的就是在这些格式之间进行转换,添加/删除换行符(70个字符)并更改标题/预告片.

请注意,这两种格式都有一个注释 – 在OpenSSH键中为kaushik @ kaushik-HP,在PEM键中以Comment:开头.两者都是完全可选的,不需要转换.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读