python fabric如何保护ssh凭证?

Hoa*_*888 3 python security api password-protection fabric

所以我最近偶然发现了 python fabric api,并且对它如何帮助我完成日常系统管理任务感到非常满意。我想开始在工作中使用它,但它是一个非常注重安全的环境。我想知道 Fabric 在运行任务时如何处理您提供给它的 ssh 密码?我假设它在内存中的某个地方 plonks 并在需要登录到下一个主机时将其拉出env.hosts?它如何在内存中保护此密码?

我可以看到我会被问到很多类似的问题,所以我正在寻找一种很好的方式来向有安全意识的人解释面料很好,很友好,不会构成风险,或者至少不会构成风险没有比我们已经拥有的任何其他风险更大的风险:)

Pet*_*ons 5

我简要地查看了引用的@dm03514源代码,我相信您是正确的,如果结构需要以交互方式提示输入密码,它会将其读入内存并在结构 python 进程的持续时间内存储它。解决您的问题的方法不是使用结构本身,而是确保您的 ssh 基础设施在适当的情况下使用密钥而不是密码短语和 ssh 代理转发。使用加密的 ssh 密钥和 ssh-agent 来解锁它们,结构将能够利用相同的机制,从而完全避免涉及 ssh 密码。对于 sudo 密码,您要么必须允许无密码 sudo,要么接受结构在工作时将 sudo 密码保存在内存中的风险。