我正在研究我的论文,其中实现了通过SSH连接到其他Linux服务器的Python应用程序。问题是关于将密码存储在数据库中(无论如何,现在让我们说MySQL)。确保保持它们不加密是一个坏主意。但是,如果能够存储这种机密数据并在以后使用它们连接到其他服务器,我能做些什么呢?当我加密密码时,我将无法使用它来登录其他机器。
在这种情况下公钥/私钥是否设置为唯一选项?
答案 0 :(得分:3)
在我看来,对于SSH部分,使用密钥认证是我认为最好和最安全的,并且易于实现。
现在回答你的问题。您希望将这些密钥或密码存储到数据库中,并且仍然可以使用它们。这要求您拥有可以从所述数据库解密它们的主密码。这将故障点指向一个不理想的单个密码。您可以提出任何数量的花式方案来加密和存储这些主密码,但它们仍然在用于登录其他服务器的机器上,因此仍然是一个弱点。
不是从密码存储的角度来看这个,而是从服务器安全的角度来看。如果有人可以访问运行python守护程序的服务器,那么他们可以登录到任何其他服务器,因此这更像是一个环境安全问题,而不是密码问题。
如果您能想出摆脱这种奇异故障点的方法,那么只要用于加密它们的密钥是安全的并且对任何其他人都不可用,那么在远程数据库中加密和存储密码就没问题了。这超出了python /数据库关系的范围。