2025-06-21プログラミング3 min read

GitHubからプライベートリポジトリをクローンする方法【WSL】

この記事にはPRを含みます

GitHubからプライベートリポジトリをクローンする方法【WSL】

目次

GitHubでプライベートリポジトリをクローンしようとして、以下のようなエラーに遭遇しました。

remote: Support for password authentication was removed on August 13, 2021.
remote: Please see https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls for information on currently recommended modes of authentication.

これは、GitHubが2021年8月13日にパスワード認証を廃止したために発生するエラーです。

今回は、WSL環境でSSH接続を設定して、安全にプライベートリポジトリをクローンする方法を紹介します。

なぜSSH接続がおすすめなのか?

SSH接続には以下のメリットがあります:

  • セキュリティが高い: 公開鍵暗号方式を使用
  • 利便性: 一度設定すれば、パスワード入力が不要
  • 安定性: Personal Access Tokenのように期限切れがない

それでは、実際の設定手順を見ていきましょう。

手順1: SSH鍵ペアの生成

まず、WSLのターミナルを開いて、SSH鍵ペアを生成します。

ssh-keygen -t ed25519 -C "[email protected]"

ポイント:

  • [email protected]の部分は、GitHubに登録しているメールアドレスに置き換えてください
  • ed25519は現在推奨されている暗号化アルゴリズムです

コマンドを実行すると、以下のような対話式の質問が表示されます:

Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/username/.ssh/id_ed25519):

通常はデフォルトのパス(そのままEnter)で問題ありません。

次にパスフレーズの設定を求められます:

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

セキュリティを高めたい場合はパスフレーズを設定しますが、利便性を重視する場合は空白のままでも構いません。

手順2: GitHubに公開鍵を追加

生成されたSSH鍵ペアのうち、公開鍵をGitHubに登録します。

2-1. 公開鍵の内容をコピー

cat ~/.ssh/id_ed25519.pub

このコマンドで表示された内容全体をコピーします。ssh-ed25519から始まり、最後にメールアドレスで終わる1行の文字列です。

2-2. GitHubの設定画面で公開鍵を追加

  1. GitHubにログインし、右上のプロフィールアイコンから「Settings」を選択
  2. 左サイドバーから「SSH and GPG keys」を選択
  3. 「New SSH key」ボタンをクリック
  4. 以下の項目を入力:
    • Title: 識別しやすい名前(例:「WSL Ubuntu」「Personal Laptop」など)
    • Key: 先ほどコピーした公開鍵の内容を貼り付け
  5. 「Add SSH key」ボタンをクリック

設定後は以下のようになります。

手順3: SSH接続のテストと設定

3-1. SSH鍵のファイル権限を設定

WSLでは、SSH鍵のファイル権限が正しく設定されていないとエラーになることがあります。以下のコマンドで適切な権限を設定しましょう:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

3-2. SSH接続のテスト

GitHubとの接続が正常に動作するかテストします:

ssh -T git@github.com

初回接続時は、以下のような確認メッセージが表示されます:

The authenticity of host 'github.com (xx.xx.xx.xx)' can't be established.
ECDSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

yesと入力してEnterを押してください。

成功すると、以下のようなメッセージが表示されます:

Hi [あなたのGitHubユーザー名]! You've successfully authenticated, but GitHub does not provide shell access.

プライベートリポジトリのクローン

SSH設定が完了したら、SSH URLを使ってプライベートリポジトリをクローンできます:

git clone git@github.com:username/repository-name.git

注意: HTTPS URLの代わりに、SSH URL([email protected]:で始まるURL)を使用することが重要です。

トラブルシューティング

パーミッションエラーが出る場合

# SSH鍵のファイル権限を再設定
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_ed25519
chmod 644 ~/.ssh/id_ed25519.pub

ssh-agentが必要な場合

パスフレーズを設定した場合は、ssh-agentを使用すると便利です:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

まとめ

WSL環境でのSSH設定は、以下の3つのステップで完了します:

  1. SSH鍵ペアの生成: ssh-keygenコマンドで鍵を作成
  2. GitHubに公開鍵を追加: GitHub設定画面で公開鍵を登録
  3. 接続テスト: ssh -T [email protected]で動作確認

一度設定してしまえば、パスワード入力なしで安全にプライベートリポジトリにアクセスできるようになります。ぜひ試してみてください!

profile

たこやま

フリーランスエンジニアやってます