所以我最近偶然发现了 python fabric api,并且非常高兴它可以帮助我完成日常的系统管理任务。我想在工作中开始使用它,但它是一个非常注重安全的环境。我想知道 fabric 在运行任务时如何处理您提供给它的 ssh 密码?我假设它会把它放在内存中的某个地方,并在需要登录到 env.hosts
中的下一个主机时将其拉出?它如何在内存中保护此密码?
我知道我会被问到很多类似的问题,所以我正在寻找一种很好的方式来向有安全意识的人解释织物是好的和友好的,不会带来风险或者至少不会比我们已有的任何其他风险更大:)
最佳答案
我简要浏览了 source引用了 @dm03514,我相信你是正确的,如果 fabric 需要以交互方式提示输入密码,它将把它读入内存并在 fabric python 进程期间存储它。解决您的问题的方法不是结构本身,而是确保您的 ssh 基础设施使用 key 而不是密码短语和 ssh 代理转发(在适当的情况下)。使用加密的 ssh key 和 ssh-agent 来解锁它们,fabric 将能够利用相同的机制,从而完全避免涉及 ssh 密码。对于 sudo 密码,您要么必须允许无密码 sudo,要么接受 fabric 在工作时在内存中存储 sudo 密码的风险。
关于python - python fabric 如何保护 ssh 凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13178691/