agenix 项目教程
agenixage-encrypted secrets for NixOS and Home manager项目地址:https://gitcode.com/gh_mirrors/ag/agenix
项目介绍
agenix 是一个用于 NixOS 和 Home Manager 的 age 加密秘密管理工具。它包含两个主要部分:一个命令行应用(CLI)用于加密秘密到安全的 age 文件,以及一个 NixOS 模块,用于方便地将这些加密的秘密(age 文件)添加到 Nix 存储库中,以便通过 nixos-rebuild 或其他类似工具自动部署和解密。
项目快速启动
安装 agenix
通过 Flakes 安装
首先,确保你已经安装了 Nix 并且启用了 Flakes 功能。然后在你的 flake.nix
文件中添加以下内容:
{
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs";
agenix.url = "github:ryantm/agenix";
};
outputs = { self, nixpkgs, agenix }: {
nixosConfigurations.yourhostname = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
agenix.nixosModules.agenix
./configuration.nix
];
};
};
}
配置秘密
创建一个 secrets.nix
文件,定义你的秘密和接收者的公钥:
{
"secret1.age".publicKeys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILM+rvN+ot98qgEN796jTiQfZfG1KaT01bFTEQo/F0aD" ];
}
部署
使用 nixos-rebuild
命令部署你的配置:
sudo nixos-rebuild switch --flake .#yourhostname
应用案例和最佳实践
应用案例
agenix 可以用于保护敏感数据,如 API 密钥、数据库密码等。例如,你可以将数据库密码加密并存储在 Nix 存储库中,然后在 NixOS 配置中自动解密和使用。
最佳实践
- 定期更新密钥:定期更新你的公钥和私钥,并重新加密你的秘密。
- 限制访问:确保只有授权的用户和服务可以访问加密的秘密。
- 备份密钥:备份你的私钥,以防丢失。
典型生态项目
agenix 与 NixOS 和 Home Manager 紧密集成,可以与其他 Nix 生态项目一起使用,如:
- NixOps:用于部署和管理 NixOS 系统。
- deploy-rs:一个简单的多配置文件部署工具。
- colmena:一个声明式的 NixOS 部署工具。
通过这些工具,你可以更方便地管理和部署你的 NixOS 系统,同时保护你的敏感数据。
agenixage-encrypted secrets for NixOS and Home manager项目地址:https://gitcode.com/gh_mirrors/ag/agenix