---
title: "ターミナルがダサいとモテない。yadmとgit-cryptの連携で暗号化 | grasys blog"
url: "https://blog.grasys.io/post/yusukeh/terminal-yadm-git-crypt"
description: "dotfiles管理と暗号化の組み合わせしてますか？ Photo by Markus Spiske on Unsplash encryptってunsplashに入れたらマトリクスみたいな・・・😅 恵比寿でIT企業をやっているとモテると聞いて創業しましたが、ありがたいことに11年目に突入した長谷川です。 前回から最近の趣味の共有ネタを頭に入れるのやっていこうと考えていて今回も入れて行きます。 PYTHAGORA Bar wagon / …"
---

# ターミナルがダサいとモテない。yadmとgit-cryptの連携で暗号化

-   ![](/_astro/noicon.CTHOhNiB_1HMs6A.webp)[yusukeh](/authors/yusukeh/)
-   公開日：2025年3月27日
-   カテゴリー：[Tech](/categories/tech/)
-   タグ：[#シリーズ: ターミナル環境](/tags/シリーズ-ターミナル環境/)[#yadm](/tags/yadm/)[#git-crypt](/tags/git-crypt/)[#Git](/tags/git/)[#dotfiles](/tags/dotfiles/)

![ターミナルがダサいとモテない。yadmとgit-cryptの連携で暗号化](/_astro/ogp.BiruX86V_Z2uoesV.webp)

Photo by [Markus Spiske](https://unsplash.com/@markusspiske?utm_source=medium&utm_medium=referral) on [Unsplash](https://unsplash.com/?utm_source=medium&utm_medium=referral)

dotfiles管理と暗号化の組み合わせしてますか？

encryptってunsplashに入れたらマトリクスみたいな・・・😅

恵比寿でIT企業をやっているとモテると聞いて創業しましたが、ありがたいことに11年目に突入した長谷川です。

前回から最近の趣味の共有ネタを頭に入れるのやっていこうと考えていて今回も入れて行きます。

## PYTHAGORA Bar wagon / whiskey salon model

## バーワゴン - Whisky Salon model -

### lt;コラボレーション商品> 新宿ウイスキーサロンとバーワゴンのコラボレーション商品 「自宅にウイスキーサロンを」 マスターオブウイスキー静谷和典氏監修のもと、より本格仕様なバーワゴンがここに誕生 <静谷和典氏・略歴&gt…

pythagora-shop.com

これを購入しました。  
実は1月末から発注してたので2ヶ月くらい待ちました。

自分が好きなウィスキーはこれ！

## はじまりのシングルモルト

### はじまりのシングルモルト、ザ・グレンリベット。シングルモルトの遺産のすべてが継続されています。ザ・グレンリベットのどのボトルを手にしても、あなたは200年の歴史を味わうことができるのです

[www.theglenlivet.jp](http://www.theglenlivet.jp)

日頃は12年の4000円くらいのを飲んでます。

14年も1本持っててもったいなくて飲めません🤣  
1本マニアックなグレンリヴェット持ってるんですが、貰い物で6〜7万するやつなので、これは絶対に飲めません🤣

グレンフィディックのVATシリーズとエクスペリメンタルシリーズとファイヤーアンドケーンもボウモアの12年、イチローズ・モルトのクラシックも買いました。  
（一部amazonで買ったんだけど、ゆうパックは受取が難しいのでやめて欲しい😭）

![グレンフィディックのボトルとウイスキーコレクション](/_astro/image-02.Dv18GWC0_Z1ipLg5.webp)

今はこんな感じになってます。  
これからどんどんコレクションしてこうと思います。  
最初はポピュラーなやつから集めていきます。

ただソーダストリームも購入したのでコレクションするだけではなく、ゆっくり飲んでいこうと思います🥃

## yadmとgit-cryptで暗号化

前回に続き、めちゃくちゃ脱線しましたが本題に入ります。

[yadm](https://yadm.io/)はもともと[transcript](https://github.com/elasticdog/transcrypt)と[git-crypt](https://github.com/AGWA/git-crypt)に対応しています。

## Encryption

### It can be useful to manage confidential files, like SSH keys, across multiplesystems. However, doing so would put plain…

yadm.io

今回はOPENAI\_API\_KEYとかANTHROPIC\_API\_KEYとかGITHUB\_TOKENとかちょっとbashにexportしないといけないものが増えてきていて良くないなとなってきまして、[git-crypt](https://github.com/AGWA/git-crypt)で暗号化することにしました。

## Install GPG key

git-cryptはGPG keyが必要なのでまずはGPG keyを作成します。

普通にhomebrewでInstallできます。  
ついでにgit-cryptも入れちゃいましょう。

Plain textcontent\_copy

```
brew install gnupg git-crypt
```

## Create GPG Key

gpg-generate-key.txtを作ります。

名前はGithubのUsernameが良いと思います。

Plain textcontent\_copy

```
Key-Type: RSA
Key-Length: 4096
Subkey-Type: RSA
Subkey-Length: 4096
Name-Real: 名前
Name-Email: メールアドレス
Expire-Date: 0
Passphrase: パスフレーズ
%no-protection
%commit
```

作成したgpg-generate-key.txtを使ってbatchモードでGPG Keyを作成

Plain textcontent\_copy

```
gpg --batch --generate-key gpg-generate-key.txt
```

自分は諸事情でGPG keyにメールアドレスが複数あるのでちょっと違う形でやっています。

詳細はGitHub Docsが参考になると思います。

## 新しい GPG キーを生成する - GitHub Docs

### 既存の GPG キーがない場合は、新しい GPG キーを生成してコミットおよびタグの署名に使用できます。

docs.github.com

## List GPG Key

下記のコマンドで一覧化できます。

Plain textcontent\_copy

```
gpg --list-keys
[keyboxd]
---------
pub   ed25519 2025-03-14 [SC]
      xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
uid           [  究極  ] 名前 <xxxxxxxx@example.com>
sub   cv25519 2025-03-14 [E]
```

こんな感じで表示されると思います。

pubの下のkey typeと日付の下の文字列が鍵のIDです。

詳細はGitHub Docsがとても参考になると思います。

## 既存の GPG キーの確認 - GitHub Docs

### GPG キーを生成する前に、GPG キーがすでに存在するかどうかを確認できます。

docs.github.com

## git config

いくつかgitに設定を追加します。

下記のXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXは、前項の鍵のIDです。

Plain textcontent\_copy

```
git config --global user.signingkey XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
git config --global commit.gpgsign true
git config --global gpg.program gpg
```

詳細はGitHub Docsがとても参考になります。

## Git へ署名キーを伝える - GitHub Docs

### ローカルでコミットに署名する場合は、使用したい GPG、SSH、または X.509 キーがあることを Git に知らせる必要があります。

docs.github.com

## lazygit config

ついでにlazygitも設定しましょう

XDG\_CONFIG\_HOMEを設定していれば以下になると思います。

こちらにも鍵のIDをいれる必要があるので以下のように入れます。

`.config/lazygit/config.yml`

Plain textcontent\_copy

```
git:
# ~~~~ 略 ~~~~
  signing:
    key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
# ~~~~ 略 ~~~~
```

## github GPG Key

ついでにgithubにもGPG Keyを追加しちゃいましょう。

以下のコマンドで貼り付けるべきpublic keyが出力されます。

ここでも鍵のIDが必要です。

Plain textcontent\_copy

```
gpg --armor --export XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
```

## Build software better, together

### GitHub is where people build software. More than 150 million people use GitHub to discover, fork, and contribute to…

github.com

![GitHubアカウントに登録したGPG公開鍵](/_astro/image-03.DT9Do5Ow_Z1uduVm.webp)

## .gitattributes

このファイルで暗号化するファイルをリストアップします。

これはroot Directoryに配置する必要があり、yadmはHOME Directoryがrootなので、 `~/.gitattributes` が実際の配置先になります。

自分はyadmのaltを使ってbashの設定をtemplate化しているので以下のPATHになります。

`.config/yadm/alt/.bash_private.d/secrets.Darwin`

Plain textcontent\_copy

```
.config/yadm/alt/.bash_private.d/secrets.Darwin filter=git-crypt diff=git-crypt
```

## yadm git-crypt init

Plain textcontent\_copy

```
yadm git-crypt init
```

これを実行することでgit-cryptの準備が整います。

あとは普通にyadmでcommitとpushするだけで.gitattributesに記載されたファイルが暗号化されます。

もうすでにpushされてるファイルがある場合はgitコマンドが警告を出してくれるようになります。  
対応するにはgitのhistoryから消し込みなどする必要があります。

## yadm git-crypt status

以下のコマンドでyadmで管理されているファイルが暗号化される形で取り込まれるのかを確認できます。

Plain textcontent\_copy

```
yadm git-crypt status
```

実際に叩くとyadmで管理されているファイルのすべてが出力されるので数が多いと大量に流れますが気にしなくて大丈夫です😆

暗号化されていれば以下のように表示されます。

Plain textcontent\_copy

```
    encrypted: .config/yadm/alt/.bash_private.d/secrets.Darwin
```

暗号化されていなければ以下のように表示されます。

Plain textcontent\_copy

```
not encrypted: .config/yadm/alt/.bash_private.d/starship/starship
```

## 感想

dotconfig系の管理では、APIKeyなどが入ることがあるので最初から暗号化ツールを有効化しておいた方がいいですね

ターミナル環境について他の記事も書いているので、よろしければこちらもご覧ください！  
[『ターミナルがダサいとモテない』シリーズ一覧](https://blog.grasys.io/tags/series-terminal-update)

転載：[ターミナルがダサいとモテない。yadmとgit-cryptの連携で暗号化](https://medium.com/@yusuke_h/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB%E3%81%8C%E3%83%80%E3%82%B5%E3%81%84%E3%81%A8%E3%83%A2%E3%83%86%E3%81%AA%E3%81%84-yadm%E3%81%A8git-crypt%E3%81%AE%E9%80%A3%E6%90%BA%E3%81%A7%E6%9A%97%E5%8F%B7%E5%8C%96-7fb4147437bd)

この記事は [Medium（@yusuke\_h）](https://medium.com/@yusuke_h) からの転載です。

## この記事を書いた人

[![](/_astro/yusukeh.BvUd2yKE_1mQ6Fp.webp)](/authors/yusukeh/)

### [yusukeh](/authors/yusukeh/)

Fly high. Think deep. Move fast. Go far.🦅

-   [X](https://x.com/yusukeh "X")
-   [GitHub](https://github.com/yusukeh "GitHub")
-   [Medium](https://medium.com/@yusukeh "Medium")
-   [Facebook](https://www.facebook.com/yusuke.exzm "Facebook")
-   [Instagram](https://www.instagram.com/yusukehasegawa/ "Instagram")
-   [LinkedIn](https://www.linkedin.com/in/hasegawa-yusuke-091b4164/ "LinkedIn")

[プロフィールと記事一覧](/authors/yusukeh/)