Heim >Backend-Entwicklung >Golang >Wie führe ich mit Go Befehle auf einem Remote-Computer aus?
Befehle auf einem Remote-Computer mit Go ausführen
Das Ausführen von Befehlen auf einem Remote-Computer über SSH kann mit „golang.org/“ erreicht werden. x/crypto/ssh“-Paket.
Um eine Verbindung herzustellen, erstellen Sie eine Client-Konfiguration mit dem Benutzer, der Hostadresse und der Authentifizierungsmethode (PublicKeys oder Passwort).
Sobald die Verbindung hergestellt ist, eine Sitzung kann für jede Befehlsausführung erstellt werden. Durch Festlegen des Werts session.Stdout kann die Ausgabe des Befehls in einem Puffer erfasst werden.
Die bereitgestellte Beispielfunktion remoteRun() zeigt, wie ein bestimmter Befehl auf einem Remote-Computer ausgeführt und das Ergebnis zurückgegeben wird:
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 }
Mit diesem Ansatz können Sie ganz einfach Befehle auf Remote-Computern über Ihre Go-CLI ausführen und deren Ausgaben verarbeiten.
Das obige ist der detaillierte Inhalt vonWie führe ich mit Go Befehle auf einem Remote-Computer aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!