Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führe ich mit Go Befehle auf einem Remote-Computer aus?

Wie führe ich mit Go Befehle auf einem Remote-Computer aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 21:35:03551Durchsuche

How to Execute Commands on a Remote Machine with Go?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn