golang如何生成SSH公钥文件authorized_keys

看着奢扣 2019-07-31 04:06:43
谢谢!
我生成的公钥是这样的:
-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApAsNx7DxWcjyaRpNP2Vx
nFGkvtgpZwn77FBu7pbKU54YnsRXWor2+B2RBwscmlTjkCA46y1OTWAEBEAE1qP8
V2pZHC2Z7X07+PU4R4Rb28YzOXUdsdZMykGxr4YBbhQdrqgOzBJLeJY0f7siajjH
6eKn/raiLGWLAxzdZ3oMcdqShJsek1BTCFUT3IcwyCvGPVKTMTLMSzl6F8gxuVc4
YGCv8SHug7cjWo1H1kEx3kXpvNy3JcE2d/BEdQqPRzrfNueXHNpK/DNwNxcvMbZ9
u0X/QQGFgify3nPVfUw+eZhHPxmBGwWzMraa8qJ0s/mO1UXEfSjZIIvmpnSl2Xkv
CQIDAQAB
-----END PUBLIC KEY-----


如何转换成如下编码格式并写入 authorized_keys文件?
root@node001:~/.ssh# cat authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCy/2DmrG2TH+OD8ojZye4GQMM/OpCCxNjmLcZrOfCF+oBXSKtwhvdSdHcruGg48NwC59JULDru5/rSN5LEY0pYeCwuUBcqbzxwXJbECb7jubHiB2kuxZda7TbTbuOxye32I/DmrN6qEjwbSgBzYNqDHi/BxnurYLypbcr4s7ANLHOVUmhxOLcsIOWXUPdbSvzQd5Fjmp+b7NFMP7X0QhEpY8HoOxJB77phm/PUFBbSaEWFUWAyYyDNCzpzLRDlm+jiM9uYMp1WFygpARKYD0iHc0fpBvhLW0VlYvhZKvFfZOfHru8BUfIR855tUj6b/f7QL39UOjUzb5rhAxUJYjlR Generated-by-haff
...全文
708 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
qybao 2019-08-01
  • 打赏
  • 举报
回复
pem格式转成ssh,自己查下api就可以解决了
for example

import (
"fmt"
"encoding/pem"
"crypto/rsa"
"crypto/x509"
"golang.org/x/crypto/ssh"
)

func main() {
p := `-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApAsNx7DxWcjyaRpNP2Vx
nFGkvtgpZwn77FBu7pbKU54YnsRXWor2+B2RBwscmlTjkCA46y1OTWAEBEAE1qP8
V2pZHC2Z7X07+PU4R4Rb28YzOXUdsdZMykGxr4YBbhQdrqgOzBJLeJY0f7siajjH
6eKn/raiLGWLAxzdZ3oMcdqShJsek1BTCFUT3IcwyCvGPVKTMTLMSzl6F8gxuVc4
YGCv8SHug7cjWo1H1kEx3kXpvNy3JcE2d/BEdQqPRzrfNueXHNpK/DNwNxcvMbZ9
u0X/QQGFgify3nPVfUw+eZhHPxmBGwWzMraa8qJ0s/mO1UXEfSjZIIvmpnSl2Xkv
CQIDAQAB
-----END PUBLIC KEY-----` //这里为了方便,省略读文件
b := []byte(p) //如果是读文件,b, err := ioutil.ReadFile(“your_pem_file”)
block, _ := pem.Decode(b)
if block == nil {
panic("invalid public key data")
}
if block.Type != "PUBLIC KEY" {
panic(fmt.Sprintf("invalid public key type : %s", block.Type))
}
keyInterface, err := x509.ParsePKIXPublicKey(block.Bytes)
if err != nil {
panic("failed to convert bytes to public key.")
}
key, ok := keyInterface.(*rsa.PublicKey)
if !ok {
panic("not RSA public key")
}
skey, err := ssh.NewPublicKey(key)
if (err != nil) {
panic("failed to convert ras key to ssh key.")
}
b = ssh.MarshalAuthorizedKey(skey)
fmt.Printf("result: %v", string(b))
}
看着奢扣 2019-08-01
  • 打赏
  • 举报
回复
谢谢2楼, 我一开始以为api都在x509的包里
看着奢扣 2019-07-31
  • 打赏
  • 举报
回复
也就是说 AAAAB3NzaC1yc2EAAAADAQABAAABAQCy/2DmrG2TH+OD8ojZye4GQMM/OpCCxNjmLcZrOfCF+oBXSKtwhvdSdHcruGg48NwC59JULDru5/rSN5LEY0pYeCwuUBcqbzxwXJbECb7jubHiB2kuxZda7TbTbuOxye32I/DmrN6qEjwbSgBzYNqDHi/BxnurYLypbcr4s7ANLHOVUmhxOLcsIOWXUPdbSvzQd5Fjmp+b7NFMP7X0QhEpY8HoOxJB77phm/PUFBbSaEWFUWAyYyDNCzpzLRDlm+jiM9uYMp1WFygpARKYD0iHc0fpBvhLW0VlYvhZKvFfZOfHru8BUfIR855tUj6b/f7QL39UOjUzb5rhAxUJYjlR 是如何根据公钥生成的
内容概要:本文系统研究了谐振式双有源桥(DAB)变换器的无传感模型预测控制(MPC)方法,旨在通过Simulink仿真平台实现无需电流传感器的高性能控制策略,从而提升系统可靠性并降低硬件成本。研究深入分析了串联谐振型DAB变换器的工作原理与数学建模过程,构建了完整的无电流传感MPC控制框架,重点解决了系统状态观测、预测模型构建、控制律设计及稳定性保障等关键问题。文中详细阐述了状态观测器的设计原理,实现了对关键电流状态的精确估计,并结合模型预测控制算法优化动态响应性能,有效应对功率波动与负载变化。通过对闭环系统的仿真验证,充分展示了该方法在动态性能、鲁棒性与控制精度方面的优越表现,为电力电子系统中先进控制策略的应用提供了可复现的技术路径。; 适合人群:具备电力电子技术、自动控制理论及Simulink仿真基础,从事新能源发电、储能系统、电动汽车、直流微网等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①研究无电流传感器条件下高动态性能DAB变换器的控制方案设计;②掌握模型预测控制与状态观测器在电力变换系统中的集成方法;③通过Simulink仿真复现先进控制策略,支撑高水平科研论文撰写、课题申报或实际工程项目开发。; 阅读建议:建议结合所提供的Simulink仿真模型进行动手实践,重点关注状态观测器与MPC控制器的参数设计与耦合关系,对照文中“完美复现”案例逐步调试,深入理解控制算法的实现细节与性能优化方法,以全面提升理论分析与工程应用能力。

2,352

社区成员

发帖
与我相关
我的任务
社区描述
go语言学习与交流版
社区管理员
  • go语言社区
  • 俺叫西西弗斯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧