俺たちはもう GitHub のために ssh-keygen しなくていい
ラブグラフ 開発インターンの 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 -T
や gh 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