我有一台服务器和一台远程计算机.现在我想通过SSH访问远程计算机,但它可能是在NAT后面.这是我想要反向SSH连接的原因之一.
我们的想法是建立从远程计算机到服务器的连接,并使用此连接通过SSH从服务器与远程计算机进行通信.
使用OpenSSH这很容易.从远程计算机我打开反向SSH隧道:
ssh- R 19999:localhost:22 user@192.168.0.10
Run Code Online (Sandbox Code Playgroud)
现在我可以从服务器端使用它:
ssh localhost -p 19999
Run Code Online (Sandbox Code Playgroud)
我想在远程计算机上使用go应用程序和go SSH库实现相同的行为.服务器仍将使用OpenSSH,因此不应更改.
我知道如何通过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())
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |