🙃

Github環境設定「ssh」と「gpg」を設定

2023/08/14に公開

ssh接続できるように設定

sshディレクトリを作成

$ cd ~/
$ mkdir .ssh
$ cd ~/.ssh
$ ssh-keygen -t rsa -C y-ydev
$ mkdir github
ディレクトリを作っておくと複数キー情報を管理するときでも管理が楽
$ mv id_rsa id_rsa.pub ./github/
$ cd github
$ cat id_rsa.pub | pbcopy
pbcopyはmacのクリップボードに内容を保存
出力情報をクリップボードに保存したいときに便利

ここまできたら、githubの「SSH and GPG keys」に作成したキー情報を保存
OSS開発で「GPG keys」が登録されていることが求められることがあるので、「gpgの登録」で一緒に登録する

githubに登録したらsshの接続確認を行う

$ ssh -i ~/.ssh/github/id_rsa -T git@github.com
i y-ydev! You've successfully authenticated, but GitHub does not provide shell access.

SSH 接続をテストする

sshディレクトリに「config」ファイルを作成して「git clone」を利用できるようにする

$ cd ~/.ssh
$ touch config

configに追記する内容

# Github
Host github.com
  IdentityFile ~/.ssh/github/id_rsa
  User git
  #次回以降パスワード入力を省略する
  AddKeysToAgent yes
  UseKeychain yes

ここまで設定できれば「git clone xxxxxx」でクローンすることができる

gpgの登録

GPGを発行するためのツールをインストールする

$ brew install --cask gpg-suite

キー情報を生成する

gpg --full-generate-key

gpg作成についてgithubに案内があるので、そちらを参考とする

ホームディレクトリ直下に以下のファイルが生成される

$ ~/
$ ls-al | grep gn
rwx------  14 y-y   staff   448 Aug 14 14:28 .gnupg
drwx------   5 y-y   staff   160 Aug 14 14:25 .gnupg_pre_2.1

生成された認証情報を確認しgithubに登録する

step1 鍵のキー情報を確認

$ gpg --list-secret-keys --keyid-format=long
(注 githubのサンプルです)
/Users/hubot/.gnupg/secring.gpg 
------------------------------------
sec   4096R/3AA5C34371567BD2 2016-03-10 [expires: 2017-03-10]
uid                          Hubot <hubot@example.com>
ssb   4096R/4BB6D45482678BE3 2016-03-10

step2 公開鍵の中身を出力

$ gpg --armor --export 3AA5C34371567BD2 | pbcopy

step3 githubのGPG keysに登録する
githubの「SSH and GPG keys」の「GPG keys」に登録する

step4 コミットで自動的に署名されるように設定

$ git config --global commit.gpgsign true
$ git config --global user.signingkey 3AA5C34371567BD2

Discussion