在 Ubuntu 中,aliases 本身并不是“加密”对象,而是 shell 的配置(通常在 ~/.bashrc、~/.bash_aliases 等文件中以明文存储)。如果你想“保护 aliases 不被别人看到”或“不让 aliases 明文暴露”,可以从安全存储、权限控制、加密文件、运行时解密几个层面来做。
下面按实用程度给你几种方案。
如果只是不想让别人随意看到:
chmod 600 ~/.bash_aliases
chmod 700 ~
这样其他用户无法读取你的 alias 文件。
✅ 简单
❌ 仍可被 root 看到
ecryptfs(用户级加密目录)Ubuntu 自带:
sudo apt install ecryptfs-utils
创建加密目录(如 ~/private):
ecryptfs-setup-private
然后把 aliases 放进去:
~/Private/.bash_aliases
在 ~/.bashrc 中:
source ~/Private/.bash_aliases
✅ 登录后自动解密
✅ 磁盘上是加密的
gpg -c ~/.bash_aliases
会生成:
.bash_aliases.gpg
在 ~/.bashrc 中:
gpg -d ~/.bash_aliases.gpg 2>/dev/null | source /dev/stdin
或者先解密再 source:
gpg -d ~/.bash_aliases.gpg > /tmp/aliases && source /tmp/aliases
rm -f /tmp/aliases
✅ 真正加密
❌ 每次需要密码(可用 gpg-agent 缓存)
gpg --encrypt -r your@email.com ~/.bash_aliases
解密:
gpg -d ~/.bash_aliases.gpg | source /dev/stdin
适合多机 / 高安全需求。
如果 alias 包含密码或 token:
❌ 错误示例:
alias db='mysql -u root -ppassword'
✅ 改进:
alias db='mysql -u root -p"$(secret-tool lookup db password)"'
结合:
libsecretpassgopass| 需求 | 推荐方案 |
|---|---|
| 防普通用户看 | chmod 600 |
| 防磁盘窃取 | ecryptfs |
| 真正加密 | GPG |
| 含敏感信息 | GPG + secret manager |
如果你愿意,可以告诉我:
我可以直接帮你写一套可用的配置。