使用x/crypto/ssh 透過Go 中的堡壘節點建立與私有實例的SSH 連線
在這種情況下,您的目標是連接透過部署在包含公共和私有的AWS VPC 內的堡壘節點從本地筆記型電腦到私有實例(稱為「服務實例」)子網路。您打算在服務實例上執行命令並從本機筆記型電腦傳輸檔案。
要使用Go 的「x/crypto/ssh」函式庫實現此目的:
建立與堡壘主機的連線:
從Bastion 建立到服務實例的連線:
為服務實例建立新的SSH 用戶端:
執行指令並傳送檔案:
以下是示範這些步驟的程式碼片段:
// 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)
使用 sClient,您可以執行指令並與服務實例傳送檔案。
以上是如何使用 x/crypto/ssh 透過 Go 中的堡壘主機 SSH 到私有實例?的詳細內容。更多資訊請關注PHP中文網其他相關文章!