如何为MongoDB设置autossh隧道

这是我的设置 –

我有两个VPS(linode)。 Linode1上有MongoDB。 我需要从Linode2访问这个MongoDB。 但是,我不希望私人networking上的其他用户窃取我的数据,所以我需要使用autossh

我在autossh -M 5122 -N -R 27017:linode1ip:27017 linode1ipautossh -M 5122 -N -R 27017:linode1ip:27017 linode1ip ,但随后提示inputroot@linode1ip密码。

我期望的是,当我成功执行(修改后)上述命令时,我可以简单地使用mongo 127.0.0.1:27017从Linode2连接到mongo。 我错了这个假设吗?

谢谢你们。

在你的命令中的第二个-M不是必需的,并且将(如果你发布的命令行是正确的)导致你得到一个Bad remote forwarding specification 'linode1ip'

你想build立隧道的命令是

autossh -M 20000 -N -p 22 USER@LINODE1IP -L 27017/localhost/27017 (已编辑)

这将在linode2上的localhost:27017和linode1上的27017端口之间build立ssh隧道。

如果你想得到这个设置,而不必提供密码,你将不得不build立公钥authentication和ssh-agent。

我的理解是,你需要一种方法来排除密码提示从您的设置? 如果是你想要的,你需要设置公钥authentication 。 这样,你几乎可以开火并忘记连接。

root用户的密钥authentication有点危险,所以也许你想用你的隧道作为mongodb用户或其他非特权用户。

我不知道那个autossh行,但我从来没有真正使用过这个工具。 也许你应该尝试使用ssh首先运行一个隧道,然后在所有问题排除后添加autossh部分。