Go x / crypto / ssh - So stellen Sie eine ssh-Verbindung zur privaten Instanz über einen Bastion-Knoten her

Ich möchte dieses Szenario implementieren: Auf AWS habe ich eine VPC, in der ein öffentliches und ein privates Subnetz bereitgestellt wird. Im öffentlichen Subnetz habe ich eine "Bastion" -Instanz, während im privaten Subnetz ein Knoten einige Dienste ausführt (AKA "Dienstinstanz"). Mit dem Befehl * nux ssh kann ich Folgendes tun, um von meinem lokalen Laptop aus eine Verbindung zur "Dienstinstanz" herzustellen:

ssh -t -o ProxyCommand="ssh -i <key> ubuntu@<bastion-ip> nc %h %p" -i <key> ubuntu@<service-instance-ip>

Ich habe ein Go-Programm und möchte die folgenden Aufgaben ausführen:

ssh vom "lokalen Laptop" über die "Bastion" mit der "Dienstinstanz" verbindenVerwenden Sie die Verbindungssitzung, um einige Befehle auszuführen (z. B. "ls -l").Upload von Dateien vom "lokalen Laptop" auf "Service-Instanz"

Ich habe versucht, aber nicht in der Lage, den gleichen Prozess wie bei @ zu implementier

ssh -t -o ProxyCommand="ssh -i <key> ubuntu@<bastion-ip> nc %h %p" -i <key> ubuntu@<service-instance-ip>

Kann mir jemand helfen, ein Beispiel zu zeigen? Vielen Dank

BTW, ich fand das:https: //github.com/golang/go/issues/622, was bedeutet, dass es definitiv dazu in der Lage ist, richtig?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage