Menyambung ke pelayan menggunakan SSH dan kunci dalam Golang boleh dicapai melalui pakej ssh. Begini cara anda boleh melakukannya:
Fungsi Dail memerlukan contoh ssh.AuthMethod, yang boleh dibuat daripada kekunci SSH menggunakan ssh.PublicKeys. Untuk mendapatkan penandatangan daripada bait PEM, gunakan ssh.ParsePrivateKey.
Untuk menggunakan medan Penandatangan kunci persendirian, anda boleh menggunakan ssh.PublicKeys(penandatangan...) sebagai kaedah pengesahan anda.
Kod Contoh:
<code class="go">import ( "log" "net" "os" "github.com/gliderlabs/ssh" ) func main() { sock, err := net.Dial("unix", os.Getenv("SSH_AUTH_SOCK")) if err != nil { log.Fatal(err) } agent := agent.NewClient(sock) signers, err := agent.Signers() if err != nil { log.Fatal(err) } auths := []ssh.AuthMethod{ssh.PublicKeys(signers...)} cfg := &ssh.ClientConfig{ User: "username", Auth: auths, } cfg.SetDefaults() client, err := ssh.Dial("tcp", "aws-hostname:22", cfg) if err != nil { log.Fatal(err) } session, err := client.NewSession() if err != nil { log.Fatal(err) } log.Println("we have a session!") }</code>
Kod ini meniru arahan ssh -i x.pem user@host, mewujudkan sesi SSH dengan pelayan yang ditentukan menggunakan kekunci yang disediakan. Anda kini boleh melaksanakan arahan dalam pelayan melalui pembolehubah sesi.
Atas ialah kandungan terperinci Bagaimana untuk SSH ke Pelayan Linux Menggunakan Kekunci dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!