我有一台服务器和一台远程计算机。现在我想通过 SSH 访问远程计算机,但它可能位于 NAT 后面。这就是我想要反向 SSH 连接的原因之一。这个想法是建立从远程计算机到服务器的连接,并使用此连接通过 SSH 从服务器到远程计算机进行通信。使用 OpenSSH,这很容易。我从远程计算机打开反向 SSH 隧道:ssh- R 19999:localhost:22 user@192.168.0.10现在我可以从服务器端使用它:ssh localhost -p 19999我想通过远程计算机上的 go 应用程序和 go SSH 库实现相同的行为。服务器仍将使用 OpenSSH,因此不应更改。我知道如何从 go 通过 SSH 连接到计算机,但是如何实现相反的部分?func main() { config := &ssh.ClientConfig{ User: "vagrant", Auth: []ssh.AuthMethod{ ssh.Password("vagrant"), }, } conn, err := ssh.Dial("tcp", "192.168.0.10:22", config) if err != nil { panic("Failed to dial: " + err.Error()) }}
添加回答
举报
0/150
提交
取消