Heim > Artikel > Backend-Entwicklung > Wie führe ich Befehle auf Remote-Rechnern mit einer Golang-CLI aus?
Ausführen von Befehlen auf Remote-Maschinen mit einer Golang-CLI
Um Befehle auf Remote-Maschinen auszuführen, kann eine Golang-CLI die Datei „golang.org“ verwenden /x/crypto/ssh“-Paket. Hier ist eine Lösung für Ihre Anfrage:
Die Funktion remoteRun zeigt, wie ein einzelner Befehl auf einem Remote-Computer ausgeführt und seine Ausgabe abgerufen wird:
func remoteRun(user string, addr string, privateKey string, cmd string) (string, error) { // Read or retrieve the private key key, err := ssh.ParsePrivateKey([]byte(privateKey)) if err != nil { return "", err } // Configure authentication config := &ssh.ClientConfig{ User: user, HostKeyCallback: ssh.InsecureIgnoreHostKey(), // Allow any host Auth: []ssh.AuthMethod{ ssh.PublicKeys(key), }, } // Establish a connection client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } // Create a session session, err := client.NewSession() if err != nil { return "", err } defer session.Close() // Collect the command's output var b bytes.Buffer session.Stdout = &b // Execute the command err = session.Run(cmd) if err != nil { return "", err } return b.String(), nil }
Diese Funktion übernimmt den Benutzer, die Adresse, privat Schlüssel und Befehl als Eingabe und gibt die Ausgabe des Befehls als Zeichenfolge zurück. Sie können den Benutzer, die Adresse und den privaten Schlüssel angeben, der Zugriff auf die Maschine gewährt, auf der Sie den Befehl ausführen möchten.
Das obige ist der detaillierte Inhalt vonWie führe ich Befehle auf Remote-Rechnern mit einer Golang-CLI aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!