【发布时间】:2015-07-18 04:25:38
【问题描述】:
所以我有一个可以在其他服务器上自动执行远程任务的应用程序。它通过 SSH 连接到服务器并通过该连接执行命令来做到这一点。
我遇到的问题是如何处理这些服务器的用户名/密码。在大多数情况下,我无法为 SSH 设置基于证书的身份验证,并且无法使用用户/密码。虽然我不希望将密码以纯文本形式存储在数据库中,但我不知道或理解一种可以加密存储密码的方式,但仍允许应用程序访问密码以进行身份验证远程服务器。 这有可能吗?
感谢您的帮助!
【问题讨论】:
-
这是可能的,但老实说,如果您不熟悉密码学、密钥管理以及与您的应用程序和网络架构相关的许多其他安全最佳实践,我不建议您开发这样的东西能够安全地处理此类敏感信息的加密/解密。 (我这么说是因为从你的问题中我了解到你对加密一无所知,如果我错了,请纠正我)。以防你以后需要一个好的密钥管理服务,AWS 最近推出了一个:aws.amazon.com/kms/?nc2=h_l3_dm
-
感谢您向我介绍 AWS 的服务。我将无法在这里使用 AWS,因为这些机器都在一个封闭的系统中,无法访问外部网络。我坦率地承认,除了常识告诉我之外,我对密码学和密钥管理最佳实践还很不熟悉。我可以看到在保留应用程序功能的同时实现密码加密的唯一方法是要求我将密钥存储在应用程序服务器上,但这样做似乎会使加密变得多余,而不仅仅是减慢想要访问的人的速度到密码。
标签: ruby-on-rails encryption ssh passwords