🐱

Github で鍵を使い分ける

2021/11/09に公開

基本は会社の Git リポジトリを使っているが、仕事と直接関わらないちょっとした検証のコードなどは個人の Github に置いておきたい
会社の Mac から個人のリポジトリにアクセスしていいかどうかは各々の会社のルールに従ってください

プライベート用の鍵をつくる

鍵の作り方

https://qiita.com/suthio/items/2760e4cff0e185fe2db9

現状、会社の Mac には id_rsa と id_rsa.pub があるわけだがこれは基本的に会社用。プライベートの Github にはすでに鍵が登録されているがそれは別のプライベートの Mac 用のものなので、会社 Mac で使うための鍵のセットを新しくつくって、その公開鍵をプライベートの Github に置いておけば良いと思った

Github には公開鍵を何種類か置ける

鍵を作る

ssh-keygen -t rsa -b 4096 -C "[ プライベートの Github で使ってるメールアドレス ]"

以下でどこにどんなファイルを置くのか聞かれる。ここでちゃんとファイル名を変更しないと既存の鍵のファイルを上書きしてしまう。 /Users/[ Username ]/.ssh/id_rsa.sub などとする

Enter file in which to save the key (/Users/you/.ssh/id_rsa): [Press enter]

鍵ができたら .pub の中身をコピーして Github の公開鍵に追加

.ssh/config を書き換える

そもそも config がなかったので新規に作成
会社とプライベートで Host をそれぞれ作成してそれぞれの鍵を指定する

Host github.com # メインアカウント
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa  # メインアカウント用の鍵
  TCPKeepAlive yes
  IdentitiesOnly yes

Host github.com.sub # サブアカウント
  HostName github.com
  User git
  Port 22
  IdentityFile ~/.ssh/id_rsa_sub  # サブアカウント用の鍵
  TCPKeepAlive yes
  IdentitiesOnly yes

ssh 接続確認

ssh -T git@github.com # main の ssh 鍵のパスフレーズを聞かれる
ssh -T git@github.com.sub # sub の以下同じ

それぞれ "Hi [ Your name ]! You've successfully authenticated, but GitHub does not provide shell access." と返ってきたら OK
以降はこのリンクを参照・・

https://qiita.com/yampy/items/24638156abd383e08758

指定したリポジトリ以下の git の設定を書き換える

$ git config hogehoge なコマンドで .git/config を編集できるのだが、コマンドに --global オプションをつけてしまうと全体を書き換えてしまう。指定したリポジトリ以下の場合は --local を使う

$ git config --local user.name hogehoge

Discussion