在Go语言中,可以使用golang.org/x/crypto/ssh
包来生成SSH密钥对。下面是一个简单的示例代码,用于生成SSH密钥对:
package main
import (
"crypto/rand"
"crypto/rsa"
"crypto/x509"
"encoding/pem"
"os"
)
func main() {
privateKey, err := rsa.GenerateKey(rand.Reader, 2048)
if err != nil {
panic(err)
}
privateKeyPEM := &pem.Block{
Type: "RSA PRIVATE KEY",
Bytes: x509.MarshalPKCS1PrivateKey(privateKey),
}
privateKeyFile, err := os.Create("id_rsa")
if err != nil {
panic(err)
}
defer privateKeyFile.Close()
pem.Encode(privateKeyFile, privateKeyPEM)
publicKey := privateKey.PublicKey
publicRsaKey, _ := ssh.NewPublicKey(&publicKey)
publicKeyFile, err := os.Create("id_rsa.pub")
if err != nil {
panic(err)
}
defer publicKeyFile.Close()
publicKeyFile.Write(ssh.MarshalAuthorizedKey(publicRsaKey))
fmt.Println("Private and Public key files generated successfully!")
}
这段代码将会生成一个名为id_rsa
的私钥文件和一个名为id_rsa.pub
的公钥文件。请注意,需要先安装 golang.org/x/crypto/ssh
包。
希望对你有所帮助。
内容由零声教学AI助手提供,问题来源于学员提问