2016-02-25 77 views
1

我在DO中有一個MONGODB實例。我可以使用終端在OSX中通過「ssh user @ ip」命令進行連接,但是如果我想將它與Meteor(本地)連接,則需要使用「ssh -L port:localhost:portserver user @ ip - f -N「,並使用啓動Meteor與--port。要訪問MONGODB,我刪除了密碼,以便您只能使用ssh訪問,並按照DO指南中的建議啓用防火牆。 我的問題是:有沒有辦法連接流星(本地)與MONGODB,而不使用每次ssh隧道?或者讓它在流星啓動之前運行命令?這個應用將在手機上(Android)供個人使用,所以它不會繼續生產。 第二個問題:ssh隧道+端口轉發比使用user @ password連接到MONGODB要慢嗎? 第三個問題:我打算將ssh用於將要投入生產的另一個mongoDB,使用user @ password和使用MONGO_URL var進行連接會更好嗎?使用ssh連接流星外部數據庫

感謝您的幫助!

回答

0

這裏要考慮兩件事情: - 認證 - 加密

的SSH隧道確保加密,而密碼認證,確保。你可以打開你的數據庫到世界上,並受到密碼的保護,但是如果你沒有加密,它很容易受到各種網絡嗅探攻擊(無論何時在開放網絡上,或者如果有人是在中間)

所以,你需要加密聽,這是SSL(TLS真的,但最好的已知,如SSL)

你應該着眼於MongoDB的文檔此:

https://docs.mongodb.org/manual/tutorial/configure-ssl/

TLS也可用於身份驗證,使用客戶端證書並將服務器證書設置爲僅接受具有有效證書的客戶端。這有點複雜,因爲您需要配置您的證書頒發機構(最有可能)來生成正確的證書。

您可以使用如下工具:https://github.com/cloudflare/cfssl讓您的生活更輕鬆地生成證書。

希望有所幫助。