Зачем оно нужно
age - это утилита для шифрования файлов. Когда нужно хранить .env, дамп базы или конфиги в репозитории, пересылать их между серверами или просто держать на диске, проще зашифровать файл, чем городить отдельные хранилища. age работает с публичным и приватным ключом, без сертификатов и сложных форматов.
файл → age encrypt → файл.age → age decrypt → файл
Генерация ключей и шифрование
Сначала создаёшь ключевую пару и берёшь публичный ключ. Шифруешь файл публичным ключом, расшифровываешь приватным. В репозитории обычно хранится только *.age, приватный ключ хранится отдельно.
age-keygen -o key.txt
age-keygen -y key.txt > key.pub
age -r "$(cat key.pub)" -o .env.age .env
age -d -i key.txt -o .env .env.age
Практика для серверов и команд
Удобный сценарий: зашифровал конфиг, положил в git или отправил на сервер, а на сервере расшифровал ключом, который лежит в защищённом месте. Чтобы не оставлять открытый файл на диске, можно расшифровать в stdout и сразу передать дальше в команду.
age -d -i key.txt .env.age | docker compose --env-file /dev/stdin up -d
Вывод
age - это простой способ держать секреты в файлах, не превращая задачу в отдельный проект.
LinuxCamp | #utils
