Die folgende Tutorial-Kolumne von golang gibt Ihnen eine detaillierte Erklärung der Golang-SSH-Verbindung zum Server (Simulation eines interaktiven Terminals). Ich hoffe, dass sie für Freunde in Not hilfreich ist!
Verwendete Bibliothek: golang.org/x/crypto/ssh (die Wand hat einen Proxy https://goproxy.cn)
1. Senden Sie den Befehl zum Ausführen von session.Run()
package main import ( "bytes" "fmt" "golang.org/x/crypto/ssh" "log") func main() { // 建立SSH客户端连接 client, err := ssh.Dial("tcp", "127.0.0.1:2222", &ssh.ClientConfig{ User: "root", Auth: []ssh.AuthMethod{ssh.Password("123456")}, HostKeyCallback: ssh.InsecureIgnoreHostKey(), }) if err != nil { log.Fatalf("SSH dial error: %s", err.Error()) } // 建立新会话 session, err := client.NewSession() if err != nil { log.Fatalf("new session error: %s", err.Error()) } defer session.Close() var b bytes.Buffer session.Stdout = &b if err := session.Run("ls"); err != nil { panic("Failed to run: " + err.Error()) } fmt.Println(b.String()) }
2 um die Sitzung auszuführen .Output()
session.run(command) führt den Befehl direkt auf dem Host aus und kümmert sich nicht um das Ausführungsergebnis. session.Output gibt den Stdout zurück, nachdem der Befehl ausgeführt wurde Ich muss es überprüfen. Funktion zum Umschreiben des Client-Quellcodes
Verwenden Sie die GO-Sprache, um sich flexibel per Batch-SSH beim Server anzumelden und Vorgänge auszuführen: https://www.cnblogs.com/findumars/p/5930584.html
A sehr gutes Web-SSH-Projekt auf Github: https://github.com/libragen/felix
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des Golang-SSH-Verbindungsservers (Simulation eines interaktiven Terminals). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!