2

我的.bashrc文件中有一些函数用于在远程网站上发出备份命令。现在,用户名和密码字段在函数定义中以纯文本形式存储为函数本地字符串。有没有更好的方法来做到这一点?

到目前为止,我的想法是将密码的散列版本放在只有我的用户帐户具有读取权限的文件中,在其上运行去散列命令行函数并将纯文本结果存储在内存中,使用它,然后清除它。

是否有更好/更安全甚至事实上的通用方法来实现这一目标?

谢谢你。

4

1 回答 1

3

我可以想到两种安全地解决这个问题的方法。

1.GPG

保存一个 GPG 加密文件,其中包含您的密码key=value格式(shell 基本上可解析),每行一个。如:

foo_pass='bar'
pop_pass='tart'

当您想访问它们时,只需执行以下操作:

eval "$(gpg -d /path/to/file | grep '^foo_pass=')"
SUPERSECRETPASSWORD="$foo_pass" somecmd

如果命令需要密码作为参数(这是不安全的),只需调整最后一行。

2. 密钥环守护进程

根据您的操作系统,您可能有权访问可以存储密码的密钥环。在 linux 上,这可能是gnome 密钥环守护进程。然后这个密钥环可能可以通过 CLI/脚本以某种方式访问​​。例如,gkeyring与 gnome 密钥环守护程序一起使用。

于 2015-03-28T21:40:09.290 回答