Mengesah ke SSH dengan pem/Key in Go
Menyambung ke pelayan SSH jauh menggunakan kunci persendirian boleh menjadi cara yang mudah untuk mengautomasikan tugas dan mengurus sumber. Bahasa pengaturcaraan Go menawarkan pakej ssh, yang menyediakan sokongan untuk mewujudkan sambungan SSH. Walau bagaimanapun, dokumentasi mungkin agak tidak jelas mengenai cara untuk mengesahkan dengan kunci persendirian.
Untuk menyambung ke pelayan menggunakan SSH dengan kunci pem, anda boleh mengikuti langkah berikut:
Contoh:
<code class="go">package main import ( "crypto/x509" "fmt" "io/ioutil" "log" "net" "os" "golang.org/x/crypto/ssh" ) func main() { // Parse the private key key, err := ioutil.ReadFile("mykey.pem") if err != nil { log.Fatal(err) } // Get the signer signer, err := ssh.ParsePrivateKey(key) if err != nil { log.Fatal(err) } // Switch to using an agent if SSH_AUTH_SOCK is set if authSock := os.Getenv("SSH_AUTH_SOCK"); authSock != "" { sock, err := net.Dial("unix", authSock) if err != nil { log.Fatalf("Failed to connect to agent: %v", err) } _ = sock // TODO(harsh) // Implement working with agent. } // Create the AuthMethod authMethods := []ssh.AuthMethod{ssh.PublicKeys(signer)} // Set up the ClientConfig clientConfig := &ssh.ClientConfig{ User: "username", Auth: authMethods, HostKeyCallback: ssh.InsecureIgnoreHostKey(), } // Dial the connection client, err := ssh.Dial("tcp", "aws-hostname:22", clientConfig) if err != nil { log.Fatal(err) } // Create a session session, err := client.NewSession() if err != nil { log.Fatal(err) } // Execute a command output, err := session.Output("whoami") if err != nil { log.Fatal(err) } fmt.Println("Output:", string(output)) // Close the session and client _ = session.Close() _ = client.Close() }</code>
Oleh mengikut langkah ini, anda boleh mewujudkan sambungan SSH selamat menggunakan kunci peribadi dan melaksanakan arahan pada pelayan jauh menggunakan pakej ssh perpustakaan standard Go.
Atas ialah kandungan terperinci Bagaimana untuk Mengesahkan kepada SSH dengan PEM/Key in Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!