1

我需要创建一个应用程序(严格来说是python 3.3),用户将在其中将他们的设置在线保存/加载到远程托管数据库。出于安全原因,我不希望将数据库更改为侦听 localhost 以外的任何其他内容,因此我认为对我来说最好的解决方案是让程序在保存/加载发生之前创建一些 ssh 隧道。

此政策会使我的数据库不安全吗?

我怎样才能使这项工作?我尝试安装 paramiko,但它还没有准备好 python 3+。我还想也许我可以在应用程序的安装中包含腻子托盘和一些适当的脚本,以便我可以创建那个隧道,但我在这里寻找一些聪明而高效的东西。当然,我真的真的很喜欢避免每次激活隧道时出现任何额外的托盘图标或外壳。

我在这里问,以便我可以听到有经验的人的意见。因为我缺乏那个:)。你的建议是什么?

提前谢谢

4

1 回答 1

0

我目前正在处理类似的问题(尝试使用目前不提供身份验证的 Docker 远程 API)。我目前正在使用bgtunnel,尽管我时不时地遇到一些错误(通常通过刷新网页来解决) - 乍一看是由于尝试在已经存在的情况下建立连接。这可能可以使用一些thread.isAlive()东西来解决,但总而言之,管理连接有点混乱——它已经存在了吗?我应该在任何请求之前检查还是尝试建立它并在异常时重做 API 调用。这有点棘手。我也开始探索 Paramiko,希望从 Python 处理它可能会更容易一些 -移植到 Python 3的过程目前似乎几乎完成了。

也就是说,我希望任何体面的数据库都有足够好的内置身份验证和加密,我不应该害怕在没有任何 ssh 隧道的情况下远程使用它。从这个SO answer看来,例如 Postrges 可以这样配置。这意味着您可以退出 ssh,这是堆栈中少考虑的一件事。他们也在努力在 Docker 的远程 API 中实现远程身份验证,此时我很乐意这样做:)

于 2014-01-11T22:57:24.613 回答