Maison >développement back-end >Golang >Comment établir une connexion SSH à une instance privée via un hôte Bastion à l'aide de x/crypto/ssh de Go ?
Établissement d'une connexion SSH à une instance privée via un nœud Bastion avec x/crypto/ssh de Go
Aperçu du scénario
Dans un VPC avec des sous-réseaux publics et privés, une instance « bastion » réside dans le sous-réseau public, donnant accès à « l'instance de service » privée dans le sous-réseau privé.
Connexion via x/crypto/ssh de Go
Pour se connecter à l'instance de service via Go's x/crypto/ssh, suivez ces étapes :
Établir le bastion Connexion :
bClient, err := ssh.Dial("tcp", bastionAddr, config) if err != nil { log.Fatal(err) }
Composer la connexion à l'instance de service :
conn, err := bClient.Dial("tcp", serviceAddr) if err != nil { log.Fatal(err) }
Créer un SSH virtuel Connexion :
ncc, chans, reqs, err := ssh.NewClientConn(conn, serviceAddr, config) if err != nil { log.Fatal(err) }
Instancier le client SSH pour l'hôte de service :
sClient := ssh.NewClient(ncc, chans, reqs)
Alternative à la commande nc
La bibliothèque x/crypto/ssh fournit la méthode Dial, qui permet d'établir une connexion à l'hôte de service à partir de l'hôte bastion sans utiliser la commande nc.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!