1 回答

TA貢獻1111條經驗 獲得超0個贊
您可以在沒有nc命令的情況下使用“x/crypto/ssh”更直接地執行此操作,因為有一種方法可以從遠程主機撥打連接并將其顯示為net.Conn.
一旦有了ssh.Client,您就可以使用該Dial方法net.Conn在您和最終主機之間建立虛擬機。然后你可以把它變成一個新的ssh.Connwith ssh.NewClientConn,并創建一個新的ssh.Clientwithssh.NewClient
// 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 is an ssh client connected to the service host, through the bastion host.
- 1 回答
- 0 關注
- 210 瀏覽
添加回答
舉報