テック技報最新号へ →
セキュリティ

age でシークレットファイルを暗号化する(SSH 鍵を流用)

age はシンプルなファイル暗号化ツール。既存の SSH 公開鍵を受信者として使え、リポジトリに暗号化済みシークレットを置ける。

@Comamoca_ · 2026-10-09
#secrets#encryption#age#dotfiles

いつ使うか

  • dotfiles や NixOS 設定などで、シークレットを Git 管理したいがクラウドのシークレットストアまでは要らないとき。

手順

sh
# SSH 公開鍵で暗号化
age -R ~/.ssh/id_ed25519.pub -o secrets.env.age secrets.env
# 秘密鍵で復号
age -d -i ~/.ssh/id_ed25519 secrets.env.age > secrets.env
# GitHub に登録済みの公開鍵を受信者にする例
curl -s https://github.com/<user>.keys | age -R - -o out.age in.txt
  • sops と組み合わせると YAML/JSON の値だけ暗号化でき、エディタで編集しやすい。
  • NixOS では agenix / sops-nix で age を使ったシークレット管理ができる(@Comamoca_ はこれで運用)。

注意点

  • 復号した平文ファイルを .gitignore し忘れない。
  • 鍵を失うと復号できない。受信者を複数(バックアップ鍵)指定しておく。

出典

X の元の投稿を開く