【GitHub】GitHubアカウント作成とSSH鍵の設定を初心者向けに解説

Git

こんにちは、かつコーチです。

前回の記事で、GitHubが「クラウド上の共有作業場」であることを解説しました。

今回は、実際にその作業場に入るための準備、つまりアカウント作成とSSH鍵の設定を進めていきます。

「SSH鍵って何のために必要なの?」という疑問を持つ方も多いので、仕組みから丁寧に解説します。

読み終える頃には、自分のパソコンから安全にGitHubへ接続できる状態が整っているはずです。

SSH鍵とは?

SSH鍵=自分専用の「合鍵」

SSH鍵とは、パソコンとGitHubの間で安全に通信するための、暗号化された鍵のペアのことです。

たとえるなら、SSH鍵は「自分専用の合鍵を作る」ようなものだとイメージしてください。

合鍵には、家に取り付ける「錠(鍵穴)」と、それに対応する「鍵」の2つがセットで存在します。

SSH鍵もこれと同じで、GitHub側に預ける公開鍵(錠にあたる部分)と、自分のパソコンだけに置いておく秘密鍵(鍵そのもの)の2つがペアになっています。

自分のパソコンに秘密鍵さえあれば、パスワードを毎回入力しなくても、GitHubという作業場に安全に出入りできるようになるのです。

なぜパスワードでなくSSH鍵を使うのか

以前はGitHubへの接続にパスワードを使う方法もありましたが、現在はセキュリティ強化のため、pushpullのたびにパスワードで認証する方式は廃止されています。

パスワードは使い回しや漏洩のリスクがありますが、SSH鍵は自分の合鍵を他人に渡さない限り、なりすましのリスクが低い認証方法です。

そのため現在は、SSH鍵(もしくはPersonal Access Token)を使った接続が標準的な方法になっています。

基本の設定手順

手順1:GitHubアカウントを作成する

まずはGitHub公式サイトにアクセスし、メールアドレス・ユーザー名・パスワードを入力してアカウントを作成します。

ユーザー名は今後、リポジトリのURLなどにも使われるため、覚えやすく短いものを選んでおくのがおすすめです。

手順2:SSH鍵を生成する

ターミナル(Macの場合は「ターミナル」、Windowsの場合はGit Bash)を開き、以下のコマンドでSSH鍵のペアを作成します。

ssh-keygen -t ed25519 -C "your_email@example.com"

実行すると保存場所を聞かれるので、特にこだわりがなければそのままEnterキーを押して進めます。

パスフレーズ(鍵にかけるロック)の入力も求められますが、空欄のままEnterでも問題ありません。

手順3:公開鍵をGitHubに登録する

作成した公開鍵の中身を表示し、コピーします。

cat ~/.ssh/id_ed25519.pub

表示された文字列(ssh-ed25519から始まる1行)をすべてコピーしたら、GitHubの「Settings」→「SSH and GPG keys」→「New SSH key」から貼り付けて登録します。

手順4:接続テストを行う

登録が終わったら、実際に接続できるかテストしてみましょう。

ssh -T git@github.com

初回は「本当に接続していいか」確認する表示が出るので、yesと入力します。

以下のように表示されれば、合鍵がGitHub側の錠にぴったり合っている証拠です。

Hi your_username! You've successfully authenticated, but GitHub does not provide shell access.

つまずきやすい設定・注意点

ssh-keygenを実行する際、すでに別のSSH鍵を作成済みだと、保存場所の確認で上書きしてしまうことがあります。

心当たりがない場合は、保存場所を~/.ssh/id_ed25519_githubのように変更し、既存の鍵と衝突しないようにしましょう。

よくあるつまずきポイント・エラー対処

「Permission denied (publickey)」に遭遇した話

私が実際に手を動かしていて最初につまずいたのが、この認証エラーでした。

❌ Before

SSH鍵を作成した直後にgit cloneを実行したところ、以下のエラーが表示されて接続できませんでした。

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

合鍵を作ったのに、なぜか錠を開けられない状態だったのです。

✅ After

原因を調べたところ、公開鍵をコピーする際に文字列の一部が欠けたままGitHubに登録してしまっていたことがわかりました。

改めてcatコマンドで公開鍵全体を表示し直し、ssh-ed25519の先頭からメールアドレスの末尾まで、1文字も欠けないようコピーし直したところ、無事に接続できました。

# 公開鍵の中身を最初から最後まで確認
cat ~/.ssh/id_ed25519.pub

# 接続テストで確認
ssh -T git@github.com

この経験から、SSH鍵まわりのエラーは「鍵そのものが壊れている」よりも「コピーミス」が原因であることが多いと学びました。

応用・一歩先の使い方

複数のGitHubアカウントを使い分ける場合のSSH設定

仕事用と個人用など、複数のGitHubアカウントを1台のパソコンで使い分けたい場合は、~/.ssh/configファイルに接続先ごとの設定を書き分けることで対応できます。

# ~/.ssh/config
Host github-work
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_work

Host github-personal
    HostName github.com
    User git
    IdentityFile ~/.ssh/id_ed25519_personal

これは、同じ玄関でも用途ごとに違う合鍵を使い分けるイメージです。

クローン時のURLをgit@github-work:username/repo.gitのように書き換えることで、使う鍵を切り替えられます。

まとめ

この記事のポイント

  • SSH鍵とは、GitHubに安全に接続するための「自分専用の合鍵」のこと
  • 公開鍵をGitHub側に登録し、秘密鍵は自分のパソコンだけに保管する
  • ssh-keygen→公開鍵の登録→ssh -T git@github.comの接続テストが基本の流れ
  • エラーの多くは「コピーミス」が原因なので、公開鍵は全文を正確にコピーする

次に読むべき記事

接続の準備が整ったら、次は実際にリモートリポジトリとやり取りする方法を見ていきましょう。

「リモートリポジトリとpush・pull・clone・fetch」で、荷物のやり取りに例えながら解説しています。

タグ: #GitHub #初心者向け #環境構築

タイトルとURLをコピーしました