Remotebefehle mit SSH in Golang CLI ausführen
Das Ausführen von Befehlen auf Remotecomputern ist eine häufige Aufgabe bei der Automatisierung der Systemverwaltung. In Golang bietet das Paket „golang.org/x/crypto/ssh“ eine bequeme Möglichkeit, SSH-Verbindungen herzustellen und Befehle aus der Ferne auszuführen.
Um einen Befehl auf einem Remote-Computer auszuführen, befolgen Sie diese Schritte:
Stellen Sie eine SSH-Verbindung her:
Verwenden Sie die ssh.Dial-Funktion, um eine SSH-Verbindung zum Remote-Computer herzustellen. Sie müssen die folgenden Informationen angeben:
Hier ist eine Beispielfunktion, die zeigt, wie ein Remote-Befehl ausgeführt und seine Ausgabe zurückgegeben wird:
import ( "bytes" "net" "golang.org/x/crypto/ssh" ) func remoteRun(user, addr, privateKey, cmd string) (string, error) { 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), }, } client, err := ssh.Dial("tcp", net.JoinHostPort(addr, "22"), config) if err != nil { return "", err } session, err := client.NewSession() if err != nil { return "", err } defer session.Close() var b bytes.Buffer // capture output session.Stdout = &b // get output err = session.Run(cmd) return b.String(), err }
Diese Funktion kann dazu verwendet werden Führen Sie Befehle auf Remote-Computern aus und bieten Sie so eine bequeme Möglichkeit, Systemverwaltungsaufgaben über Golang-CLI-Skripte zu automatisieren.
Das obige ist der detaillierte Inhalt vonWie führe ich Remote-Befehle mit SSH in einer Golang-CLI aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!