- 投稿日:2020-01-04T22:03:36+09:00
Keybaseに登録した鍵を使ってWSLを使わずにWindowsでgitの署名付きcommitをする
この記事は別サイトで執筆したKeybaseに登録した鍵を使ってWSLを使わずにWindowsでgitの署名付きcommitをする – ひつじぶどうの内容を加筆・修正した上で転載しています。
はじめに
どうも✋(´・ᴗ・` )
言いたいことは掲題の通りです。
WSL, 悪くはないと思うんですがフォントの設定があんまりうまくいかなかったり個人的にはあまり便利には使えていないので,できればPowerShellだけで済ませたい人向けの記事です。
※オリジナルの記事執筆時点での感想です。今は良さげな気がします。Keybase の鍵で GitHub のコミットに Verified バッジをつける – Qiita
基本的にはここで書かれている内容をWindowsでやりましょうというお話です。
macOS向けの記事ではあるものの, なんかまぁ適当に読み替えればいけるかなと思ったけどそうではない感じだったので忘れないようにまとめておこうみたいなモチベで書きました。鍵の管理にはKeybaseを使っています。
手順
Keybaseのインストール
Keybaseを使って鍵の管理をしたいので, インストールしていなければインストールしておきます。
公式サイトからインストーラーをダウンロードしてインストールしてください。The App – Install Windows | Keybase Docs
Gpg4winのインストール・設定
Windowsでgpgを使うには”Gpg4win”をインストールします。
gpgはWindows向けのバイナリは公式には配布されていませんが, The Gpg4win Initiativeが開発しているWindows向けバイナリを使用します。インストールにはChocolateyを使いましたが別にGUIインストーラーを使っても良いとは思います。
PowerShellを「管理者として実行」してPS> choco install gpg4winでインストール。
Keybase の鍵で GitHub のコミットに Verified バッジをつける – Qiita には”pinentry”という, 秘密鍵のパスフレーズを入力する時に使用するソフトのインストールも一緒にすることになっていますが, Gpg4winにはpinentryが同梱されているので特段のインストール操作は不要です。
下記のコマンドを実行して, gpg-agent.conf にpinentryの場所を教えてあげます。
(pinentry-basic
の場所が不明だったので,Get-Command pinentry-basic.exe | Select-Object Name, Source
を実行して探しました。)PS> Write-Output "pinentry-program `"C:\Program Files (x86)\GnuPG\bin\pinentry-basic.exe`"" > $env:APPDATA\gnupg\gpg-agent.conf PS> gpgconf --kill gpg-agentGPGへのKeybaseの鍵の登録
これは Keybase の鍵で GitHub のコミットに Verified バッジをつける – Qiita に書かれていることと同じことをすればOKです。
PS> keybase pgp export | gpg --import PS> keybase pgp export --secret | gpg --allow-secret-key --import上記のコマンドを実行するとまず秘密鍵に設定するパスフレーズを訊かれますので, 適宜入力してください。
こんな感じの表示が出ればOKです。
gpg: 鍵****************:"Ray Nanamiya <****@**********>"変更なし gpg: 鍵4F7AF2B0AF315E05: 秘密鍵をインポートしました gpg: 処理数の合計: 1 gpg: 変更なし: 1 gpg: 秘密鍵の読み込み: 1 gpg: 秘密鍵のインポート: 1github.comに公開鍵情報を登録する
公開鍵をコピーするために, Keybaseの自身のプロフィールページに行き, ここをクリックします。
Githubの自身のプロフィールページにアクセスし, 画面右上のSettingsをクリックします。
「New GPG Key」をクリックしてコピーしたGPGキーを登録します。
gitに鍵情報等を登録する
これまでの手順で鍵のインポートが終わったので, gitに鍵の情報と鍵を扱うアプリケーションの登録をします。
まずは鍵情報を確認します。
PS> gpg --list-secret-keys C:/Users/user_name/AppData/Roaming/gnupg/pubring.kbxsec rsa4096 2019-09-29 [SC] [有効期限: 2035-09-25] E474************************************* uid [ 不明 ] Ray Nanamiya <****@**********> ssb rsa4096 2019-09-29 [E] [有効期限: 2035-09-25] この”E474″から始まるキーをgitに登録します。PS> git config --global user.signingkey E474*************************************次に下記のコマンドでgpg.exeのパスをgitに登録します。
git config --global gpg.program "C:\Program Files (x86)\GnuPG\bin\gpg.exe"gpg.exeの場所がわからない時は
Get-Command gpg | Select-Object Name, Source
あたりを打って確認してください。以上で手順は完了です。
GPG鍵を使った署名をしたcommitをするにはgit commit -S -m "...
のように-S
オプションを付加します。
- 投稿日:2020-01-04T12:34:38+09:00
転職日記2日目
Git,GitHubに関してUdemyで学んだことをここに記述します。
間違えているところや理解が乏しいところがあるかと思いますが、その時は容赦なく突っ込んでいただければ幸いです。1Gitとは
→バージョン管理システム。「どのファイルを」「いつ」「誰が」「何のため」変更したかを残せる
仕組みとしては変更履歴を順々に記録している2開発の流れ
→個人のファイルを個人リポジトリにcommitして、共有リポジトリにpushする。
・リポジトリとはファイルとファイルの変更履歴が入る箱
・commitとは個人リポジトリに変更履歴を記録
・pushとは共有リポジトリに変更を共有3,GitHubとは
→個人リポジトリのファイルやディレクトリを預かってくれるところ
特徴
・プルリクエストでの複数人開発
→プルリクエストとは開発者のローカルリポジトリでの変更を他の開発者に通知する機能
これにより、より質の高いコードが作れる
・他チームのソフトウェアが見える
- 投稿日:2020-01-04T07:18:41+09:00
初心者によるプログラミング学習ログ 203日目
100日チャレンジの203日目
twitterの100日チャレンジ#タグ、#100DaysOfCode実施中です。
すでに100日超えましたが、継続。100日チャレンジは、ぱぺまぺの中ではプログラミングに限らず継続学習のために使っています。
203日目は
おはようございます
— ぱぺまぺ@webエンジニアを目指したい社畜 (@yudapinokio) January 3, 2020
203日目
udemyでgit、webサイトコーディング、css+メディアクエリ#100DaysOfCode#早起きチャレンジ#駆け出しエンジニアと繋がりたい