そもそも何をする作業なのか
手元のパソコンからGitHubに接続するには、「この人だ」と認めてもらう仕組みが要ります。それがSSHの鍵です。
やることは2つだけです。
- 鍵を作る(秘密鍵と公開鍵のペアができる)
- 公開鍵のほうだけをGitHubに登録する
秘密鍵は自分のパソコンから絶対に持ち出しません。公開鍵は人に渡すためのものです。この考え方はSSHの基本にまとめてあります。
理屈は単純なのですが、手でやると「鍵の中身をコピーしてブラウザに貼り付ける」という工程があり、ここが一番よく詰まります。 見えない文字が混じったり、改行が混ざったり、そもそも隠しフォルダの中にあるファイルを開けなかったり。
これをコマンド一発で済ませます。
GitHub CLI(gh)をインストールする
GitHubが公式に配っている、GitHubを操作するためのコマンドです。
Windows:
winget install --id GitHub.cli --source winget
wingetはWindowsに標準で入っているアプリ導入係です(Windows 11と、Windows 10の比較的新しいものに入っています)。
Mac:
brew install gh
こちらはHomebrewが入っていることが前提です。入れていない場合は、Homebrewを先に導入するところから始まります。
ダブルクリックでインストールする道もある
コマンドでのインストールがうまくいかないときは、インストーラを落としてダブルクリックするのがいちばん確実です。GitHub CLIの最新リリースページに、両方のOS向けが置いてあります。
- Windows:ファイル名に
windows_amd64.msiとあるもの - Mac:ファイル名に
macOS_universal.pkgとあるもの
この点では、Windowsのほうがむしろ楽です。 Macのbrew install ghは一行で済むように見えて、その手前にHomebrewの導入という大きな山があります。Windowsはwingetが最初から入っているうえ、駄目でもMSIをダブルクリックすれば終わります。
WSLを使っている場合は別
WSL(Windowsの中でLinuxを動かす仕組み)で作業している場合、その中は別のパソコンのようなものです。Windows側にインストールしたghは、WSLの中からは見えません。
そしてWSLの中に入れる手順は、上の1行では済みません。署名鍵を置いて、配布元を登録して、それから導入するという、いくつもの工程を踏むことになります。
なので、最初の一歩の段階では、WSLを使わずWindowsのまま進めるほうがずっと簡単です。 たとえばClaude Codeは、WSLなしのWindowsにそのままインストールできます(Anthropic公式の対応OSにWindows 10以降が挙がっています)。WSLが必要になるのは、Linux向けの道具を使いたくなってからで間に合います。
インストールできたか確かめる
gh --version
バージョン番号が表示されれば成功です。ここで「そんなコマンドは無い」と言われても、たいてい失敗ではありません。 下の「詰まったときは」を見てください。
一発でやる
gh auth login
これだけです。あとは対話形式で聞かれるので、答えていきます。文言はバージョンによって変わるので、意味で判断してください。
| 聞かれること | 答え |
|---|---|
| どこのGitHubを使うか | GitHub.com |
| Gitの通信方法 | SSH(ここが肝心) |
| 新しいSSH鍵を作るか | Yes(すでに持っている人は、それを使うか聞かれます) |
| 鍵のパスフレーズ | 後述。空のままEnterでも進めます |
| 鍵につける名前 | そのままEnterで構いません |
| 認証方法 | Login with a web browser |
最後にブラウザが開いて、画面に表示された8桁のコードを入力すれば完了です。このとき、作られた公開鍵がGitHubに自動で登録されます。 ブラウザで設定画面を探して貼り付ける作業は、もうありません。
なぜSSHを選ぶのか
通信方法を聞かれたところでHTTPSを選んでも、GitHubとのやり取りはできます。鍵を作らずに済むので、一見そちらのほうが簡単です。
それでもSSHをすすめるのは、この鍵が後で必ず要るからです。自分のパソコンに外から接続する、Mac miniを開発機にする、といった話(リモート開発環境)は全部SSHの鍵の上に成り立っています。どのみち通る道なら、いちばん面倒な「鍵を作って登録する」工程が自動化されている今のうちに済ませてしまうほうが得、という判断です。
確認する
ssh -T git@github.com
Hi あなたのユーザー名! から始まる返事が来れば成功です。「shell accessは提供していません」と続きますが、これは正常です(GitHubにログインして操作するためのものではないので)。
初回は「接続先を信用してよいか」と聞かれます。yesと打ってください。
パスフレーズについて
秘密鍵にパスワードをかけるかどうか、という設問です。
- かける:秘密鍵のファイルを盗まれても、すぐには使われない。ただし接続のたびに入力が要る(Macのキーチェーンなどに覚えさせれば、実質1回で済みます)
- かけない:楽。ただし秘密鍵のファイルを持ち出されたら、それだけで成りすませる
ノートパソコンなど持ち歩く機械なら、かけておくのが無難です。詳しくはSSHの基本 — 鍵の作り方を参照してください。
ついでに、リポジトリ作りも短くなる
ghをインストールして認証まで済ませると、GitHubでのリポジトリ作成もブラウザなしでできます。
gh repo create my-project --private --add-readme --clone
これ1行で、GitHub上に非公開のリポジトリが作られ、READMEが置かれ、手元にcloneされるところまで終わります。作業の始め方のブラウザ作業が丸ごと消える、ということです。
詰まったときは
gh: command not found と言われる
インストールはできたのに、打つと「そんなコマンドは無い」と返ってくる場合です。プログラムはインストールされているのに、ターミナルがその置き場所を知らない、という状態で、いわゆるPATHの問題です。
まず、ターミナルを一度閉じて開き直してください。これだけで直ることがかなり多いです。インストール時に設定は書き換わっているのに、開きっぱなしのターミナルがそれを読み込んでいないだけ、という状態だからです。
Windowsの場合は、ここに落とし穴があります。 Windows Terminalを使っているなら、新しいタブを開くだけでは足りません。ウィンドウごと開き直す必要があります(公式のインストール手順に「Simply opening a new tab will not be sufficient.」と明記されています)。タブを開いて直らなかったせいで「インストールに失敗した」と思い込む、というのが起きやすいところです。
それでも駄目なら、エラーの文言をそのままエージェントに見せて聞くのが早いです。使っているOSやインストール方法によって直し方が変わるので、機械のほうに調べさせたほうが確実です。
ブラウザが開かない
別のパソコンにSSHで接続した状態で作業している場合など、手元にブラウザが無いことがあります。そのときは表示されたURLを自分のパソコンのブラウザに手で入力すれば、同じように認証できます。
すでに鍵を持っている
以前にSSHの鍵を作ったことがあれば、ghはそれを見つけて「これを登録するか」と聞いてきます。新しく作り直す必要はありません。
手でやりたい人へ
仕組みを理解したい場合や、ghをインストールしたくない場合は、手順を全部自分で踏むこともできます。
なお、この作業自体をエージェントに手伝ってもらうこともできます。 ghのインストールや動作確認は任せられます。ただしパスフレーズの入力とブラウザでの認証は自分の手でやることになるので、そこは代われません。
この鍵は、後でまた使う
GitHubのために作る鍵ですが、SSHの鍵は別のパソコンに接続するときにも同じ考え方で使います。 手元のMacからMac miniに繋いで作業する、といった話(リモート開発環境)でも登場するので、ここで一度触れておくと後が楽になります。