我正在尝试编写一个微型脚本,该脚本读取本地PC上的凭证文件,然后使用用户名/密码作为参数调用远程计算机上的另一个脚本。我正在使用Fabric2在远程计算机上ssh。一切正常,但是我不想像现在那样以明文形式发送凭证。我希望它尽可能安全,因为我想在生产中实现它。有什么建议吗?
如果我运行ps -ef,最大的问题是在远程服务器上。 grep py我看到用户名/密码都清除为这样的参数:
armkreuz 6780 6779 0 15:11? 00:00:00 /usr/bin/python3.6 /home/armkreuz/scripts/test_password.py fname.lname@exmaple.com test123
.as-console-wrapper { max-height: 100% !important; top: 0; }
答案 0 :(得分:0)
您应该对此有所担心。因此,不应将密码作为参数。
有几种方法可以通过SSH传递数据
您已经找到了发现问题的第四个选项。我自己尚未对此进行测试,但是以下应该可以工作:
conn.run(f"PASSWORD='{password}' /home/armkreuz/scripts/test_password.py {user}")
您可以使用环境变量“ PASSWORD
”来代替第二个参数作为密码
这将在命令中发送密码(仍然是选项4),但命令不是将密码作为参数传递,而是作为环境变量传递。因为是在命令中设置的,所以SSH服务器不应阻止它。
这基于服务器外壳程序(Linux / bash)的语法。请注意,这可能不适用于Windows服务器。