如何为 MongoDB 设置 autossh 隧道

如何为 MongoDB 设置 autossh 隧道

这是我的设置 -

我有两个 VPS(linodes)。Linode1 上有 MongoDB。我需要从 Linode2 访问这个 MongoDB。但是,我不希望私有网络上的其他用户偷走我的数据,所以我需要使用 autossh。

autossh -M 5122 -N -R 27017:linode1ip:27017 linode1ip在 Linode2 上运行,但随后系统提示我输入密码root@linode1ip

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

谢谢你们。

答案1

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

您要设置隧道的命令是

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

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

如果您想获得此设置而不提供密码,您将必须设置公钥认证和 ssh-agent。

答案2

我的理解是,您需要一种方法来从设置中排除密码提示?如果这是您想要的,您需要设置公钥认证。这样,您几乎可以不用再担心连接问题。

对 root 用户的密钥认证有点冒险,所以也许您想以用户mongodb或其他非特权用户的身份使用您的隧道。

我不太确定那autossh行,但我从未真正使用过该工具。也许你应该先尝试使用隧道运行ssh,然后autossh在解决所有问题后添加该部分。

相关内容