Établissement d'une connexion SSH à une instance privée sur un nœud Bastion dans Go à l'aide de x/crypto/ssh
Dans ce scénario, vous souhaitez vous connecter à une instance privée (appelée « instance de service ») depuis votre ordinateur portable local via un nœud bastion déployé dans AWS VPC contenant des sous-réseaux publics et privés. Vous avez l'intention d'exécuter des commandes sur l'instance de service et de transférer des fichiers depuis votre ordinateur portable local.
Pour y parvenir en utilisant la bibliothèque "x/crypto/ssh" de Go :
Établir une connexion à l'hôte Bastion :
Établir une connexion à l'instance de service à partir de Bastion :
Créer un nouveau client SSH pour l'instance de service :
Exécuter des commandes et transférer des fichiers :
Vous trouverez ci-dessous un extrait de code illustrant ces étapes :
// connect to the bastion host bClient, err := ssh.Dial("tcp", bastionAddr, config) if err != nil { log.Fatal(err) } // Dial a connection to the service host, from the bastion conn, err := bClient.Dial("tcp", serviceAddr) if err != nil { log.Fatal(err) } ncc, chans, reqs, err := ssh.NewClientConn(conn, serviceAddr, config) if err != nil { log.Fatal(err) } sClient := ssh.NewClient(ncc, chans, reqs)
Avec sClient, vous pouvez exécuter des commandes et transférer des fichiers vers et depuis l'instance de service.
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!