😸

俺たちはもう GitHub のために ssh-keygen しなくていい

2023/10/23に公開

ラブグラフ 開発インターンの arawi です。
今日は僕の大好きな GitHub CLI から認証の話をしていきます。
GitHub CLI は超便利です!今すぐ入れよう!

TL;DR

  • gh auth login で GitHub CLI を認証できる
  • その過程で SSH key が必要なら GitHub CLI が作ってアップロードしてくれる

GitHub CLI とは

GitHub CLI は GitHub 謹製のコマンドラインツールです。
CLI 上で Repository, Issue, Pull Request への操作など、様々なことを行なうことができます。
超便利なので今すぐ入れるべきです。HomeBrew なら以下のコマンドで入ります。

brew install gh

詳しくはこちら:https://docs.github.com/ja/github-cli/github-cli/about-github-cli

認証していく

そんな GitHub CLI の中でも特に好きなのが認証。
GitHub CLI はなんと SSH key の生成 & GitHub への登録まで担ってくれます!
早速 gh auth login と打って認証を始めていきましょう。

❯ gh auth login
? What account do you want to log into?  [Use arrows to move, type to filter]
> GitHub.com
  GitHub Enterprise Server
? What is your preferred protocol for Git operations?  [Use arrows to move, type to filter]
  HTTPS
> SSH

認証の状態に応じてこのように質問を投げかけてくれます。
ここで SSH を選択すると・・・

? Generate a new SSH key to add to your GitHub account? (Y/n)

SSH key を生成するか聞いてくれます!もう ssh-keygen しなくて OK!

? Enter a passphrase for your new SSH key (Optional)
? Title for your SSH key: (GitHub CLI)

ここまでで SSH key の生成が完了します。ls ~/.ssh すれば鍵がいるはずです。
ここまで準備できたら認証本編です。

? How would you like to authenticate GitHub CLI?  [Use arrows to move, type to filter]
> Login with a web browser
  Paste an authentication token
! First copy your one-time code: 2571-617B
Press Enter to open github.com in your browser...
# ブラウザで認証

ここで Login with a web browser を選択するとブラウザが開き、ワンタイムコードの入力を求められます。

入力して認証リクエストを許可するとシェルに戻り、認証が完了します!

✓ Authentication complete.
- gh config set -h github.com git_protocol ssh
✓ Configured git protocol
✓ Uploaded the SSH key to your GitHub account: /Users/kazuki.arai/.ssh/id_ed25519.pub
✓ Logged in as zukain5

Uploaded the SSH key to your GitHub account とあるように SSH key を勝手にアップロードしてくれます!優秀!


ちゃんといる

ssh -Tgh auth status で GitHub への接続を確認できます。

ssh -T git@github.com
Enter passphrase for key '/Users/kazuki.arai/.ssh/id_ed25519':
Hi zukain5! You've successfully authenticated, but GitHub does not provide shell access.
❯ gh auth status
github.com
  ✓ Logged in to github.com as zukain5 (keyring)
  ✓ Git operations for github.com configured to use ssh protocol.
  ✓ Token: gho_************************************
  ✓ Token scopes: admin:public_key, gist, read:org, repo

PC を新調したときなど、新たな環境で開発するなら GitHub CLI が最短です!

SSH key がある場合

SSH key がすでにある場合はそれを見つけてアップロードしてくれます。有能です。

? Upload your SSH public key to your GitHub account?  [Use arrows to move, type to filter]
> /Users/kazuki.arai/.ssh/id_ed25519.pub
  Skip

GitHub CLI 使おうぜ!

GitHub CLI を使えば認証以外にも GitHub 上のリソースに対する様々な操作をコマンドライン上で行うことができます!
さぁ、 GitHub CLI 生活を始めよう!!

ラブグラフのエンジニアブログ

Discussion