【问题标题】:Password management in BashBash 中的密码管理
【发布时间】:2015-03-28 13:58:54
【问题描述】:

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

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

有没有更好/更安全甚至事实上的通用方法来实现这一点?

谢谢。

【问题讨论】:

  • 如果使用 ssh/scp/rsync 访问远程站点,那么设置 ssh 密钥是显而易见的方法。至少,更改 .bashrc 的权限:chmod 600 ~/.bashrc

标签: bash shell hash passwords password-storage


【解决方案1】:

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

1。 GPG

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

foo_pass='bar'
pop_pass='tart'

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

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

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

2。密钥环守护进程

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-21
    • 2016-12-25
    • 2022-01-21
    • 2012-07-17
    • 1970-01-01
    • 2015-05-01
    • 2022-10-23
    • 2021-02-01
    相关资源
    最近更新 更多