我正在编写一个bash脚本,需要登录凭据(用户名和密码)来进行API调用。该脚本最终将成为一个cron作业,因此提示用户输入登录凭据是不可行的。在bash脚本中隐藏凭据的最佳方法是什么?
答案 0 :(得分:2)
如果您无法在bash脚本本身上设置受限读取权限(例如只有root可以读取它),通常的方法是使用单独的文件,具有所述限制(只有root或专用用户才能读取它) (chmod 400 filename)。
这就是你将ssh键存储在〜/ .ssh /中的方法。
如果您担心有人可以完全访问您的驱动器,例如有人偷了它,试试cryptsetup / luks。
如果您担心某人正在阅读未加密的原始设备,您可以尝试分解密码,并在需要时将其汇总到内存中......
答案 1 :(得分:0)
SSHPASS=$_pass sshpass -e ssh -o StrictHostKeyChecking=no $_host
我使用此位作为示例并提示用户输入受限文件,在SSH会话期间实际上没有传递变量的安全性更高,而是定义为env变量。 Haven从我的工作场所安全工程师那里得到了很多关注。您可以随时按照其他人的说法进行操作,并使该文件已包含信用而不是提示,并在此处执行相同操作。