メニューを閉じる

テクノデジタルグループ

メニューを開く

2025.08.29

導入編

Git SSH接続でfetch/pullができなくなった時の対処法

はじめに

GitHubでSSH接続を使用している際に、突然git fetchgit pullができなくなることがあります。
これは主にGitHub側のSSHホスト鍵の更新や、ローカルのSSH設定の問題が原因です。

本記事では、以下の問題に対する具体的な解決方法を紹介します。

• SSHホスト鍵の変更による接続エラー

• パーミッションエラー(Permission denied)

• SSH鍵の永続化設定

前提条件・環境

• Gitがインストール済み

• SSH鍵が設定済み

• GitHubアカウントを持っている

• macOS/Linux環境(Windowsの場合はWSL等)

技術概要

SSH接続の仕組み

SSH接続では、クライアント認証(あなたの秘密鍵)とサーバー認証(GitHubのホスト鍵)の両方が必要です。

問題の種類

1. ホスト鍵変更エラー: GitHub側のSSHホスト鍵が更新された場合

2. パーミッションエラー: SSH鍵の認証に失敗した場合

3. 一時的な認証問題: ssh-addの設定が不十分な場合

実装手順・設定方法

パターン1: SSHホスト鍵変更によるエラー

1. 現在の接続状況を確認

ssh -T git@github.com


正常な場合、以下のメッセージが表示されます。

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

2. Git操作でエラーが発生した場合

git fetchgit pullを実行すると、以下のようなメッセージが表示されることがあります。

The authenticity of host 'github.com (20.27.177.113)' can't be established.

ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.

This key is not known by any other names

Are you sure you want to continue connecting (yes/no/[fingerprint])?

3. フィンガープリントについて

フィンガープリントとは?

SSH接続におけるフィンガープリントとは、サーバー(接続先)の公開鍵から計算されたハッシュ値です。これはサーバーの「指紋」のようなもので、接続先のサーバーが本当に接続したいサーバーであるか確認するために使用されます。

4. 公式フィンガープリントを確認

GitHub公式ドキュメントから、表示されている鍵の種別(上記の例ではED25519)と一致するフィンガープリントをコピーします。

5. フィンガープリントを入力

確認ダイアログにコピーしたフィンガープリントをペーストしてEnterを押します。

Are you sure you want to continue connecting (yes/no/[fingerprint])? SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU


成功すると以下のメッセージが表示されます。

Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.


手元の ~/.ssh/known_hosts に新しい鍵が登録され、以後これまで通り git fetch 等が可能になります。

パターン2: パーミッションエラー(Permission denied)

1. エラーの確認

SourceTreeなどのGUIツールからコマンドを実行しようとすると、以下のエラーが発生することがあります。

git@github.com: Permission denied (publickey).

fatal: Could not read from remote repository.

Please make sure you have the correct access rights

and the repository exists.

2. SSH鍵の場所確認

ls ~/.ssh/id_rsa

3. SSH設定ファイルの作成・編集

vi ~/.ssh/config


以下の内容を追加します。

Host github.com

  AddKeysToAgent yes

  UseKeychain yes

  IdentityFile ~/.ssh/id_rsa

4. 設定の説明

AddKeysToAgent yes: SSH鍵をSSHエージェントに自動追加

UseKeychain yes: macOSのキーチェーンを使用してパスフレーズを保存

IdentityFile ~/.ssh/id_rsa: 使用する秘密鍵のパスを指定

まとめ

Git SSH接続の問題は、主に以下の3つのパターンで発生します。

1. SSHホスト鍵の変更: 公式フィンガープリントで確認して接続

2. パーミッションエラー: ~/.ssh/configでの永続化設定

3. 一時的な認証問題: ssh-addの代わりに設定ファイルでの管理

これらの対処法を理解しておくことで、突然の接続エラーにも慌てることなく対応できます。

参考資料

https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints

https://qiita.com/ktateish/items/c986891e429469c7105c

https://rurukblog.com/post/ssh-fingerprint

https://github.blog/2023-03-23-we-updated-our-rsa-ssh-host-key


【記事への感想募集中!】

記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!
  • こんな記事が読んでみたい、こんなことが知りたい、調べてほしい!という意見も募集中!
  • いただいた感想は今後の記事に活かしたいと思います!

感想フォームはこちら


【テクノデジタルではエンジニア/デザイナーを積極採用中です!】

下記項目に1つでも当てはまる方は是非、詳細ページへ!
  • 自分でアプリを作ってみたい
  • ITで世の中にワクワクを生み出したい
  • 使いやすさ、デザインにこだわったWebサイトを開発したい

採用情報の詳細はこちら


Qangaroo(カンガルー)

  • 徹底した見やすさと優れた操作性で、テストの「見える化」を実現。
  • テストの進捗が見える。開発がスマートに進む。
  • クラウド型テスト管理ツール『Qangaroo(カンガルー)』

【テクノデジタルのインフラサービス】

当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。

https://www.tcdigital.jp/infrastructure/

最近の記事