Dance with Agents

GitHubにSSHの鍵を登録する最短コース

そもそも何をする作業なのか

手元のパソコンからGitHubに接続するには、「この人だ」と認めてもらう仕組みが要ります。それがSSHの鍵です。

やることは2つだけです。

  1. 鍵を作る(秘密鍵と公開鍵のペアができる)
  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に繋いで作業する、といった話(リモート開発環境)でも登場するので、ここで一度触れておくと後が楽になります。

Gitの記事

Gitのページへ →