Heim > Backend-Entwicklung > Golang > Detaillierte Erläuterung des Golang-SSH-Verbindungsservers (Simulation eines interaktiven Terminals)

Detaillierte Erläuterung des Golang-SSH-Verbindungsservers (Simulation eines interaktiven Terminals)

藏色散人
Freigeben: 2021-05-24 11:53:43
nach vorne
4889 Leute haben es durchsucht

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())
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage