相关疑难解决方法(0)

Go - 生成SSH公钥

我正在尝试生成一个密钥对,用于Go中的SSH.我似乎正在创建一个私钥,虽然我无法弄清楚如何以正确的格式生成一个公钥.

这是代码:

privateKey, err := rsa.GenerateKey(rand.Reader, 2014)
if err != nil {
    return nil, err
}

privateKeyDer := x509.MarshalPKCS1PrivateKey(privateKey)
privateKeyBlock := pem.Block{
    Type:    "RSA PRIVATE KEY",
    Headers: nil,
    Bytes:   privateKeyDer,
}
privateKeyPem := string(pem.EncodeToMemory(&privateKeyBlock))

publicKey := privateKey.PublicKey
publicKeyDer, err := x509.MarshalPKIXPublicKey(&publicKey)
if err != nil {
    return nil, err
}

publicKeyBlock := pem.Block{
    Type:    "PUBLIC KEY",
    Headers: nil,
    Bytes:   publicKeyDer,
}
publicKeyPem := string(pem.EncodeToMemory(&publicKeyBlock))

    fmt.Println(privateKeyPem)
    fmt.Println(publicKeyPem)
Run Code Online (Sandbox Code Playgroud)

我得到这个输出:

-----BEGIN RSA PRIVATE KEY-----
MIIEhgIBAAKB/DFnL5O2LCGJQJ/6W299AsrXsHU3nsGVTbjoDqXjdHboSqAuv0ap
oyTPQuBVNff1X0AdVDwjat2vSAukST/3PmRX4TNU4jV0rog/z6grexOCSl3oatJO
i80t+F6uuTD6XTh5C5yDQNI/sTyaPpydbI+P87UuY4UapZaei7fwc3MfurJ+jwEJ
c+jOWbll2YhIgCOuIe0GRX4e4CDC2KiO/BqAWCPQNjk0Y0iC2+J+2Qy3QBOJTVO8
E2DzIhIe4VjKK6OVVesYmJWSXX/Jx382CvUDv5ss8mxGEs3yge4zeQ0GPPDaqTFw
OJ1uppsdj10ZiW92E8v/fYwlBNGfrQIDAQABAoH8C2OCMEcavVBquXZ5haYH8sLu
RtdfnbjRhgLY/Z0FyDOcoHimV5/boCy3egeqvVKvdpRMSuDPTfOOZECnMjvJAlDP
9Yln7HLNmVM8h8QeR00N38Aof/rjd5VVYF5fCs9slgwxhQ8s7ksIjLPyIyCXWjER
OX9MKe8OpT4/b1Pa1X6I28PaC3LVjDHEkigPd705i8VuF2nvZ3+Kb5uQHeczsq6f …
Run Code Online (Sandbox Code Playgroud)

ssh go

10
推荐指数
3
解决办法
7837
查看次数

Go - 如何从公钥生成 SSH 公钥指纹,公钥的类型可能是 [ rsa dsa ssh-rsa ssh-dss ecdsa ] 之一

我只有一个公钥字符串,如何获取公钥指纹?我有一些想法来自https://go-review.googlesource.com/c/crypto/+/32814,但我不知道如何
实现 ssh.PublicKey 接口。

go ssh-keys

6
推荐指数
1
解决办法
1639
查看次数

标签 统计

go ×2

ssh ×1

ssh-keys ×1