这是我的设置 -
我有两个 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
在解决所有问题后添加该部分。