使用Go 的x/crypto/ssh 透過Bastion 節點建立與私有實例的SSH 連線
場景概述場景概述
在有公有子網路和私有子網路的VPC 中, 「bastion」實例駐留在公有子網路中,提供對私有子網路中私有「服務實例」的存取。
透過 Go 的 x/crypto/ssh 連線
要透過 Go 的 x/crypto/ssh連線至服務實例,請依照下列步驟操作步驟:
建立堡壘連線:
bClient, err := ssh.Dial("tcp", bastionAddr, config) if err != nil { log.Fatal(err) }
撥號連接到服務實例:
conn, err := bClient.Dial("tcp", serviceAddr) if err != nil { log.Fatal(err) }
建立虛擬SSH 連線:
ncc, chans, reqs, err := ssh.NewClientConn(conn, serviceAddr, config) if err != nil { log.Fatal(err) }
實例化用於服務的SSH 客戶端Host:
sClient := ssh.NewClient(ncc, chans, reqs)
使用SSH客戶端執行命令和上傳檔案sClient 現在可以用於各種 SSH 操作,例如執行 ls - l 或傳輸檔案。
替代nc命令x/crypto/ssh 庫提供了Dial 方法,該方法允許從堡壘主機建立到服務主機的連接,而無需使用nc 指令。以上是如何使用 Go 的 x/crypto/ssh 透過堡壘主機建立與私有實例的 SSH 連線?的詳細內容。更多資訊請關注PHP中文網其他相關文章!