Herstellen einer SSH-Verbindung zu einer privaten Instanz über Bastion Node mit Go's x/crypto/ssh
Szenarioübersicht
In einer VPC mit öffentlichen und privaten Subnetzen befindet sich eine „Bastion“-Instanz im öffentliches Subnetz, das Zugriff auf die private „Dienstinstanz“ im privaten Subnetz bietet.
Verbindung über Go's x/crypto/ssh
Zur Verbindung mit der Dienstinstanz über Gehen Sie zu x/crypto/ssh und befolgen Sie diese Schritte:
Bastion einrichten Verbindung:
bClient, err := ssh.Dial("tcp", bastionAddr, config) if err != nil { log.Fatal(err) }
Wählverbindung zur Dienstinstanz:
conn, err := bClient.Dial("tcp", serviceAddr) if err != nil { log.Fatal(err) }
Erstellen Sie virtuelles SSH Verbindung:
ncc, chans, reqs, err := ssh.NewClientConn(conn, serviceAddr, config) if err != nil { log.Fatal(err) }
SSH-Client für Service-Host instanziieren:
sClient := ssh.NewClient(ncc, chans, reqs)
Alternative zum nc-Befehl
Die x/crypto/ssh-Bibliothek stellt die Dial-Methode bereit, die Folgendes ermöglicht Herstellen einer Verbindung zum Service-Host vom Bastion-Host aus, ohne den Befehl nc zu verwenden.
Das obige ist der detaillierte Inhalt vonWie stelle ich mit x/crypto/ssh von Go eine SSH-Verbindung zu einer privaten Instanz über einen Bastion Host her?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!