Mewujudkan Sambungan SSH ke Instance Peribadi melalui Nod Bastion dalam Go Menggunakan x/crypto/ssh
Dalam senario ini, anda bertujuan untuk menyambung kepada contoh peribadi (dirujuk sebagai "contoh perkhidmatan") daripada komputer riba tempatan anda melalui nod benteng yang digunakan dalam AWS VPC mengandungi subnet awam dan peribadi. Anda berhasrat untuk melaksanakan perintah pada contoh perkhidmatan dan memindahkan fail daripada komputer riba tempatan anda.
Untuk mencapai ini menggunakan perpustakaan "x/crypto/ssh" Go:
Mewujudkan Sambungan ke Hos Bastion:
Tetapkan Sambungan ke Instance Perkhidmatan daripada Bastion:
Buat Pelanggan SSH Baharu untuk Contoh Perkhidmatan:
Laksanakan Perintah dan Pemindahan Fail:
Di bawah ialah coretan kod yang menunjukkan langkah-langkah ini:
// 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)
Dengan sClient, anda boleh melaksanakan arahan dan pindahkan fail ke dan dari contoh perkhidmatan.
Atas ialah kandungan terperinci Bagaimana untuk SSH menjadi Contoh Peribadi melalui Hos Bastion dalam Go menggunakan x/crypto/ssh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!