Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Melaksanakan Perintah pada Mesin Jauh dengan Go?
Melaksanakan Perintah pada Mesin Jauh dengan Go
Melaksanakan arahan pada mesin jauh melalui SSH boleh dicapai dengan "golang.org/ pakej x/crypto/ssh".
Untuk mewujudkan sambungan, buat konfigurasi klien dengan pengguna, alamat hos dan kaedah pengesahan (PublicKeys atau Kata Laluan).
Setelah disambungkan, satu sesi boleh dibuat untuk setiap pelaksanaan arahan. Dengan menetapkan nilai session.Stdout, output arahan boleh ditangkap dalam penimbal.
Fungsi contoh yang disediakan, remoteRun(), menunjukkan cara menjalankan arahan tertentu pada mesin jauh dan mengembalikan hasilnya:
func remoteRun(user string, addr string, privateKey string, cmd string) (string, error) { // Parse the private key and configure the SSH client key, err := ssh.ParsePrivateKey([]byte(privateKey)) if err != nil { return "", err } config := &ssh.ClientConfig{ User: user, HostKeyCallback: ssh.InsecureIgnoreHostKey(), Auth: []ssh.AuthMethod{ ssh.PublicKeys(key), }, } // Connect to the remote machine client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } // Create a new session session, err := client.NewSession() if err != nil { return "", err } defer session.Close() // Capture stdout for the command var b bytes.Buffer session.Stdout = &b // Execute the command and return the output err = session.Run(cmd) return b.String(), err }
Dengan menggunakan pendekatan ini, anda boleh melaksanakan arahan dengan mudah pada mesin jauh daripada Go CLI anda dan memproses outputnya.
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Perintah pada Mesin Jauh dengan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!