第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go - 生成 SSH 公鑰

Go - 生成 SSH 公鑰

Go
阿晨1998 2021-07-09 13:11:53
我正在嘗試在 Go 中生成一個用于 SSH 的密鑰對。我似乎正在創(chuàng)建一個私鑰就好了,盡管我不知道如何以正確的格式生成公鑰。這是代碼: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.PublicKeypublicKeyDer, 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)
查看完整描述

3 回答

?
慕哥6287543

TA貢獻1831條經(jīng)驗 獲得超10個贊

如果您正在尋找以包含在 OpenSSH authorized_key 文件中的格式生成密鑰,以下是我最近編寫的幫助程序:


// MakeSSHKeyPair make a pair of public and private keys for SSH access.

// Public key is encoded in the format for inclusion in an OpenSSH authorized_keys file.

// Private Key generated is PEM encoded

func MakeSSHKeyPair(pubKeyPath, privateKeyPath string) error {

    privateKey, err := rsa.GenerateKey(rand.Reader, 1024)

    if err != nil {

        return err

    }


    // generate and write private key as PEM

    privateKeyFile, err := os.Create(privateKeyPath)

    defer privateKeyFile.Close()

    if err != nil {

        return err

    }

    privateKeyPEM := &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(privateKey)}

    if err := pem.Encode(privateKeyFile, privateKeyPEM); err != nil {

        return err

    }


    // generate and write public key

    pub, err := ssh.NewPublicKey(&privateKey.PublicKey)

    if err != nil {

        return err

    }

    return ioutil.WriteFile(pubKeyPath, ssh.MarshalAuthorizedKey(pub), 0655)

}


查看完整回答
反對 回復(fù) 2021-07-19
?
肥皂起泡泡

TA貢獻1829條經(jīng)驗 獲得超6個贊

以返回字符串:


func MakeSSHKeyPair() (string, string, error) {

    privateKey, err := rsa.GenerateKey(rand.Reader, 1024)

    if err != nil {

        return "", "", err

    }


    // generate and write private key as PEM

    var privKeyBuf strings.Builder


    privateKeyPEM := &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(privateKey)}

    if err := pem.Encode(&privKeyBuf, privateKeyPEM); err != nil {

        return "", "", err

    }


    // generate and write public key

    pub, err := ssh.NewPublicKey(&privateKey.PublicKey)

    if err != nil {

        return "", "", err

    }


    var pubKeyBuf strings.Builder

    pubKeyBuf.Write(ssh.MarshalAuthorizedKey(pub))


    return pubKeyBuf.String(), privKeyBuf.String(), nil

}


查看完整回答
反對 回復(fù) 2021-07-19
  • 3 回答
  • 0 關(guān)注
  • 276 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號