1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【学習・エラー】GitHubとの接続で「どの鍵使ってるの?」問題にぶつかった件

Posted at

はじめに

Udemyの講座で学習中、それぞれの講座内でSSHキーというものを作成しました。
その中でとある問題が発生し、解決過程で改めてSSHキーを理解せねば・・・と感じました。

環境

PC:Windouws11
使用エディタ:Vscode
PHPとLaravel学習中での出来事(XAMPP)

参考資料

SSHキーについては以下記事に詳しく記述されているので、割愛させていただきます

どういう状況?

B> git --version
git version 2.44.0.windows.1

//Githubから、Newリポジトリー。名前やPrivate等選択、作成。

B> git init
B> git add -A
B> git remote add origin git@github.com:・・・
B> git push -u origin main

//なぜかここまではうまくいきましたが、少しファイルの内容を修正してgit pushする際に次のようになりました

B> git push
Enter passphrase for key '/c/Users/star_/.ssh/id_rsa': 

パスワードわすれた

SSH鍵(秘密鍵)のパスフレーズを再度作成

// 古い鍵をリネーム(削除はしない)
> cd ~/.ssh
> mv id_rsa id_rsa_old
> mv id_rsa.pub id_rsa_old.pub

// 新しい鍵を作成。ファイル名の指定はそのまま(id_rsa)。パスフレーズは「空にする」
> ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

// 公開鍵をGitHubに登録するためコピーする
> cat ~/.ssh/id_rsa.pub

// Github側でSSHキーの登録を行う(資料参考)

接続を確認して再度pushしてみる

//接続確認
> ssh -T git@github.com

// 作業していたディレクトリに戻ってpush
> cd C:\xampp\htdocs\laravel\B
> git push

//成功!

あれ?現状のSSHキーの数ってどうなってる?

> ls ~/.ssh
    ディレクトリ: C:\Users\star_\.ssh
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----   2025/05/06 ()     11:15           3389 id_rsa
-a----   2025/05/06 ()     11:15            751 id_rsa.pub
-a----   2025/01/23 ()     23:37           3434 id_rsa_old
-a----   2025/01/23 ()     23:37            750 id_rsa_old.pub
-a----   2025/01/23 ()     23:52            828 known_hosts
-a----   2025/01/23 ()     23:52             92 known_hosts.old

今のディレクトリ(プロジェクト)はどのカギをつかっている?

C:\xampp\htdocs\laravel\B>
B > git remote -v
origin  git@github.com:・・・.git (fetch)
origin  git@github.com:・・・.git (push)

➡SSH鍵なので秘密鍵が(id_rsa、id_rsa.pub、id_rsa_old、id_rsa_old.pub)これらの内のどれかという事は分からない💦

改めて、GitHubに接続する際に、どのSSH鍵が使われているか確認

B > ssh -T git@github.com -v

この後かなり長いメッセージ?が表示され、使われているSSH鍵を次のような文章から確認できます

debug1: Offering public key: C:\\Users\\star_/.ssh/id_rsa RSA
debug1: Server accepts key: C:\\Users\\star_/.ssh/id_rsa RSA

つまり、このプロジェクトは C:\Users\star_.ssh\id_rsa の鍵を使って GitHub に接続している!

✅ ログの見方

意味
Offering public key PCがGitHubに「この鍵でどうですか?」と提案してる
Server accepts key GitHubが「OK!その鍵で認証するよ」と受け入れてる

まとめ

現段階でSSHキーを作りすぎている&Githubにも登録しすぎている、と思われるので、整理に繋げるためにも今回のエラーは起こってよかった事。
多分この問題が発生しなかったら、適当に流していたと思われます😢
参考資料の記事も、ちょくちょく見返して、理解を深めていきたいと思います。
※プロジェクトごとの設定はその時が来たら学びたいと思います。


おまけ1:id_rsaid_rsa.pub の違い

ファイル名 内容 説明
id_rsa 🔒 秘密鍵 自分のPCに保存されている大事な鍵。絶対に他人に見せない!
id_rsa.pub 🔓 公開鍵 GitHubに登録する用の鍵。これをサーバー(GitHub)側が使って、PCから来た鍵を検証。

✅ 余談:id_rsa_old などの他の鍵について…。

もし以前の講座で作った id_rsa_old を使いたいなら、SSH設定ファイル(~/.ssh/config)で使い分けの設定が必要になるそうです。
(つまり、複数プロジェクトで異なる鍵を使う際、~/.ssh/config を使って設定を分ける)
※何も設定していないと、id_rsaが常に優先して使われます。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?