0

我目前正在使用 Compose.io 来托管我的 MongoDB - 但是它的成本为 31 美元,我的数据库不是那么大,而且我并没有真正使用任何特定功能。

我决定在 DigitalOcean 上创建一个 droplet,然后使用他们的一键安装 MongoDB。

使用 Compose.io,我只需使用一个连接 URL,就像mongodb://USERNAME:PASSWORD@aws-xxxx.com:xxx/myDB一个 ssl 证书一样。但是对于 DigitalOcean,看起来 SSH 进入 droplet 然后连接是最好的方法(而不是创建一个开放访问bind_url.

所以我想问:

  • 这个 SSH 过程是否非常密集/耗时,因为它是否会简单地 SSH 一次然后保持连接,直到节点应用程序(网站)关闭?

  • 我正在考虑使用npm install tunnel-ssh. 这是推荐的吗?

任何提示/建议/安全说明将不胜感激。

谢谢。

4

1 回答 1

1

Compose 确实提供了许多需要大量配置才能复制的安全功能。如果这是一个生产数据库,我会认为每月 31 美元是一个不错的选择。但直接回答你的问题:

OpenSSH 可以配置为使隧道保持活动状态。可以在客户端和服务器配置文件上配置这些设置。

保持 SSH 会话处于活动状态

OpenSSH 非常高效,不会带来太多开销。在资源方面,这不是一个问题。用原生 javascript 实现的 SSH2 的性能不如 OpenSSH 二进制文件。因此,如果没有令人信服的理由,我不会使用 'tunnel-ssh'。

如果在有人根您的应用程序服务器时将您的密钥存储在您的应用程序中,他们也将拥有您的密钥。因此,请确保与您建立隧道的用户在服务器上的权限已降低,这正是他们访问 MongoDB 所需的权限,仅此而已。

您也可以考虑在同一个 Droplet 上运行您的应用程序和 MongoDB。不要将 MongoDB 暴露给网络。我不建议将它用于生产,但它适用于低调场景。请记住,如果有人根您的服务器或应用程序,他们也将拥有对数据库的完全访问权限。确保你有一个备份策略。

于 2017-01-15T21:02:35.453 回答