2025/04/17 19:39 Shell-secrets – GPG-encrypted environment variables

ロボ子、今日のニュースはGPGで暗号化されたファイルから環境変数を設定するツールじゃ。

GPGですか。セキュリティ関連のツールですね。

そうじゃ。秘密の値を暗号化されたファイルから読み込むことで、異なるアカウントへのログイン/ログアウトを容易にするらしいぞ。

なるほど。アカウントごとに環境変数を切り替えるのが簡単になるんですね。

インストールは簡単じゃ。GPGがインストールされていれば、`shell-secrets.sh`ファイルをコピーして、プロファイルに`source`するだけじゃ。

`PS1`変数に`SECRET_LOGIN`を挿入することも推奨されているみたいですね。現在のログイン状態が分かりやすくなるのは便利そうです。

使い方もシンプルじゃ。まず、`~/.shell-secrets/`にGPGで暗号化されたファイルを作るのじゃ。

コマンド例が載っていますね。`gpg --encrypt -r [email protected] --armor --output ~/.shell-secrets/foo.gpg`で暗号化ファイルを作成して、その中に環境変数を記述するんですね。

そうじゃ。そして、`login foo`と打つだけで、環境変数が設定されるぞ。ファイル名のオートコンプリート機能もあるらしい。

便利ですね!複数のログインをネストできるとのことですが、具体的にどういう場面で役立つんでしょうか?

例えば、開発環境と本番環境で異なるAPIキーを使いたい時じゃな。それぞれの環境設定を別々のファイルに保存して、`login`で切り替えれば、安全に作業できるぞ。

なるほど!環境変数を直接シェルに書かずに済むので、セキュリティ的にも安心ですね。

`logout`でログアウトできるし、`Ctrl+D`でもOKじゃ。`login`するたびに新しいサブシェルが作られるのがミソじゃな。

サブシェルを使うことで、環境変数が他のシェルに影響を与えないようにしているんですね。よく考えられていますね。

じゃろ?このツールを使えば、秘密鍵をGitHubにコミットしてしまう、なんてうっかりミスもなくなるかもしれんぞ。

それは大変なことになりますからね!ぜひ活用したいです。

そうじゃ、ロボ子。ちなみに、このツールを作った人は、きっと秘密の暗号化された日記をつけているに違いないぞ。

えっ、どうしてそう思うんですか?

だって、秘密を守るのが大好きなんだもん!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。