我正在写我的论文,其中实现了通过 SSH 连接到其他 linux 服务器的 Python 应用程序。问题是关于将密码存储在数据库中(无论哪种类型,我们现在都说 MySQL)。确保不加密它们是一个坏主意。但是我能做些什么来让存储这种机密数据并在以后使用它们连接到其他服务器时感到舒服呢?当我加密密码时,我将无法使用它来登录另一台机器。
在这种情况下,公钥/私钥是否设置为唯一选项?
我正在写我的论文,其中实现了通过 SSH 连接到其他 linux 服务器的 Python 应用程序。问题是关于将密码存储在数据库中(无论哪种类型,我们现在都说 MySQL)。确保不加密它们是一个坏主意。但是我能做些什么来让存储这种机密数据并在以后使用它们连接到其他服务器时感到舒服呢?当我加密密码时,我将无法使用它来登录另一台机器。
在这种情况下,公钥/私钥是否设置为唯一选项?
在我看来,对于 SSH 部分来说,使用密钥身份验证是最好和最安全的,并且易于实现。
现在谈谈你的问题。您希望将这些密钥或密码存储到数据库中并且仍然能够使用它们。这要求您拥有一个可以从所述数据库中解密它们的主密码。这会将故障点指向一个不理想的密码。您可以想出许多奇特的方案来加密和存储这些主密码,但它们仍然在用于登录其他服务器的机器上,因此仍然是一个弱点。
与其从密码存储的角度来看,不如从服务器安全的角度来看。如果有人可以访问运行有 python 守护程序的服务器,那么他们可以登录到任何其他服务器,因此这更多的是环境安全问题而不是密码问题。
如果您能想出一种方法来摆脱这个单一的故障点,那么只要用于加密它们的密钥是安全的并且外部的任何其他人都无法使用,加密并将密码存储在远程数据库中就可以了python/数据库关系的领域。