Open4
Gitの初期設定をする
GItの設定を行いGitHubを利用できるようにするまでのメモです
基礎も基礎の内容ですが、どの記事も少しずつ痒いところに手が届かなかったので。
スクラップを起こした動機は次の通りです
- sshでの接続が難しくなったのでhttpsで接続できるようにしたい
- 中途半端になっていたGPGの設定をしっかりとやりきりたい
2. GPG 設定
2-0. 事前準備
- Windows の場合は GnuPG から Gpg4win を入手してインストール
- Linux/Mac の場合は
gpg --version
等でコマンドが使用可能か確認
2-1. まずはキーを作成
次のコマンドでキー生成を開始できる。
--expert
を付与することでキー選択時に ECC などの追加オプションが表示される。
$ gpg --full-generate-key --expert
今回作成したいキーの設定は次の通り。
- ECC (Ed25519)
- 使用期限なし
以下はターミナルの操作画面 (適宜、省略や内容のマスク、コメントの追記を行っているので注意)。
$ gpg --full-generate-key --expert
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgmal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC and ECC
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(13) Existing key
(14) Existing key from card
Your selection? 9
Please select which elliptic curve you want:
(1) Curve 25519
(2) NIST P-256
(4) NIST P-384
(5) NIST P-521
(6)Brainpol P-256
(7) Brainpool P-384
(8) Brainpool P-512
(9) secp256k1
Your selection? 1
Please specify how long the key should be valid.
0 = key does not expire
<n> = key expires in n days
<n>w = key expires in n weeks
<n>m = key expires in n months
<n>y = key expires in n years
Key is valid for? (0) 0
Key does not expire at all
Is this correct? (y/N) y
GnuPG needs to construct a user ID to identify your key.
Real name: xxxxx xxxxxx
Email address: xxxxx.xxxxx@example.com
Comment:
<Passphrase 入力画面が表示されるので、パスフレーズを設定>
gpg: key <gpg-key-id> marked as ultimately trusted.
gpg: revocation certificate stores as '/home/xxxxx/.gnupg/openpgp-revocs.d/********.rev'
public and secret key reated and signed.
pub ed25519 YYYY-MM-DD [SC]
***********************************
uid xxxxx xxxxx <xxxxx.xxxxx@example.com>
sub cv25519 YYYY-MM-DD [E]
これで完成。
<gpg-key-id>
は後で使うので控えておくとよい。
次のコマンドで確認もできる
$ gpg --list-secret-keys --keyid-format=long
sec ed25519/<gpg-key-id> YYYY-MM-DD [SC]
***********************************
uid [ultimate] xxxxx xxxxx <xxxxx.xxxxx@example.com>
ssb cv25519/************** YYYY-MM-DD [E]
参考
2-2. GitHubアカウントにGPG キーを追加
次のコマンドを入力して GPG キー を出力させる。
必要なのは-----BEGIN PGP PUBLIC KEY BLOCK-----
から-----END PGP PUBLIC KEY BLOCK-----
までの文字列。
$ gpg --armor --export <gpg-key-id>
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxx...
-----END PGP PUBLIC KEY BLOCK-----
次に GitHub にログインし、"Settings"画面の"SSH and GPG keys"を開き、 "New GPG key"ボタンを押下
次の内容を入力してから "Add GPG key" を押下する。
- Title: キーが識別できる適当なタイトル
- Key: 最初にコピーした GPG キー
問題なければ登録が完了し、キー一覧に追加したキーが表示される。
2-3. git 側の設定
ターミナルでGPGキーの指定と有効化を行う
$ git config --global user.signingkey <gpg-key-id> # 使用する GPG Key を指定
$ git config --global commit.gpgsign true # commitの署名を有効化
$ git config --global tag.gpgsign true # tagの署名を有効化
# Windowsユーザ
$ where gpg # gpg.exe の場所を調べる
$ git config --global gpg.program <path to Gpg4win.exe> # 上記のパスを指定
# Linux/Macユーザ
$ which gpg
$ git config --global gpg.program <path to gpg> # 上記のパスを指定