我在DO上有一个MONGODB实例的Droplet。我可以通过" ssh user @ ip"在OSX中使用终端命令,但如果我想将它与Meteor(本地)连接,我需要使用" ssh -L端口进行端口转发:localhost:portserver user @ ip -f -N"并使用启动Meteor和--port。要访问MONGODB,我删除了密码,以便您只能使用ssh访问并按照DO指南中的建议启用防火墙。 我的问题是:有没有办法连接Meteor(本地)和MONGODB,而不是每次都使用ssh隧道?或者让它在流星开始之前运行命令?这个应用程序将在手机(Android)上供个人使用,因此它不会继续生产。 第二个问题:ssh隧道+端口转发比使用用户@密码连接到MONGODB要慢吗? 第三个问题:我还要将ssh用于另一个将要投入生产的mongoDB,使用用户@密码并使用MONGO_URL var进行连接会更好吗?
感谢您的帮助!
答案 0 :(得分:0)
这里有两件事需要考虑: - 身份验证 - 加密
ssh tunnel确保加密,而密码确保身份验证。
您可以向全世界开放数据库,并受密码保护,但如果您没有加密,则很容易受到各种网络嗅探攻击(无论何时在开放网络上或有人在监听在中间)
所以,你需要加密,即SSL(真的是TLS,但最好知道为SSL)
您应该查看MongoDB文档:
https://docs.mongodb.org/manual/tutorial/configure-ssl/
TLS还可用于身份验证,使用客户端证书并将服务器证书设置为仅接受具有有效证书的客户端。这有点复杂,因为您需要配置您的证书颁发机构(最有可能是OpenSSL)来生成正确的证书。
您可以使用以下工具:https://github.com/cloudflare/cfssl,以便在生成证书时更轻松。
希望有所帮助。