2025.08.29
Laravelで空判定にif文を使うとハマる理由
2025.08.29
導入編Git SSH接続でfetch/pullができなくなった時の対処法
GitHubでSSH接続を使用している際に、突然git fetchやgit pullができなくなることがあります。
これは主にGitHub側のSSHホスト鍵の更新や、ローカルのSSH設定の問題が原因です。
本記事では、以下の問題に対する具体的な解決方法を紹介します。
• SSHホスト鍵の変更による接続エラー
• パーミッションエラー(Permission denied)
• SSH鍵の永続化設定
• Gitがインストール済み
• SSH鍵が設定済み
• GitHubアカウントを持っている
• macOS/Linux環境(Windowsの場合はWSL等)
SSH接続では、クライアント認証(あなたの秘密鍵)とサーバー認証(GitHubのホスト鍵)の両方が必要です。
1. ホスト鍵変更エラー: GitHub側のSSHホスト鍵が更新された場合
2. パーミッションエラー: SSH鍵の認証に失敗した場合
3. 一時的な認証問題: ssh-addの設定が不十分な場合
ssh -T git@github.com
正常な場合、以下のメッセージが表示されます。
Hi [username]! You've successfully authenticated, but GitHub does not provide shell access.
git fetchやgit 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])?
SSH接続におけるフィンガープリントとは、サーバー(接続先)の公開鍵から計算されたハッシュ値です。これはサーバーの「指紋」のようなもので、接続先のサーバーが本当に接続したいサーバーであるか確認するために使用されます。
GitHub公式ドキュメントから、表示されている鍵の種別(上記の例ではED25519)と一致するフィンガープリントをコピーします。
確認ダイアログにコピーしたフィンガープリントをペーストして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 等が可能になります。
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.
ls ~/.ssh/id_rsa
vi ~/.ssh/config
以下の内容を追加します。
Host github.com
AddKeysToAgent yes
UseKeychain yes
IdentityFile ~/.ssh/id_rsa
• AddKeysToAgent yes: SSH鍵をSSHエージェントに自動追加
• UseKeychain yes: macOSのキーチェーンを使用してパスフレーズを保存
• IdentityFile ~/.ssh/id_rsa: 使用する秘密鍵のパスを指定
Git SSH接続の問題は、主に以下の3つのパターンで発生します。
1. SSHホスト鍵の変更: 公式フィンガープリントで確認して接続
2. パーミッションエラー: ~/.ssh/configでの永続化設定
3. 一時的な認証問題: ssh-addの代わりに設定ファイルでの管理
これらの対処法を理解しておくことで、突然の接続エラーにも慌てることなく対応できます。
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つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
1
2025.08.29
Laravelで空判定にif文を使うとハマる理由
2
2025.08.29
Git SSH接続でfetch/pullができなくなった時の対処法
3
2025.08.28
【体験談】Amazon Linux 2でMySQLインストール時のOpenSSL・GPG key エラーにハマった話
4
2025.08.28
【AWS】SSMポートフォワーディングとInstance Connectを利用したプライベートEC2へのSSH接続手順
5
2025.07.24
Log::info()が使えない!?Laravel.logのPermission denied エラーを解決する(Docker環境)
タグ検索