将公钥编组成OpenSSH格式以便显示

4
我有一个 `rsa.PrivateKey` 对象(从 `rsa.PublicKey` 检索而来)。我正在尝试将其导出为 OpenSSH 格式,以在网页中显示。
我注意到了 go.crypto/ssh 库,它似乎可以做到这一点。
并且有关于它实现的讨论(这正是我需要做的)
不幸的是,我遇到了一些困难,因为返回的字节数组是以未知编码方式表示的,我不能将其转换为字符串进行显示。
func PublicKey(rsaKey rsa.PublicKey) string {
  key, _ := ssh.NewPublicKey(&rsaKey)
  marshalled := ssh.MarshalPublicKey(key)
  return string(marshalled)
}

这似乎有效,因为它在字符串开头添加了ssh-rsa。然而,大多数字符都无法识别。
这是我检索lambda公钥的字节数组:

[0 0 0 7 115 115 104 45 114 115 97 0 0 0 3 1 0 1 0 0 0 65 0 178 153 15 73 196 125 250 140 212 0 174 106 77 27 138 59 106 19 100 43 35 242 139 0 59 251 151 121 10 222 154 76 200 43 139 42 129 116 125 222 192 139 98 150 229 58 8 195 49 104 126 242 92 75 244 147 107 161 192 230 4 30 157 21]

有没有关于如何将此字节数组正确显示为字符串的提示?
1个回答

5

在网络格式中进行密钥编组。您只需要对字节进行Base64编码:

base64.StdEncoding.EncodeToString(marshalled) + "\n"

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