git@github.com: Permission denied (publickey) エラーの解決方法
エラーの概要・症状
「git@github.com: Permission denied (publickey)」というエラーメッセージは、GitHubにSSHを介して接続しようとした際に、認証に失敗した場合に表示されます。このエラーは、SSHキーが正しく設定されていないか、GitHubアカウントに関連付けられていない場合に発生します。具体的には、以下のような状況でこのエラーが見られます。
- SSHキーが生成されていない
- SSHキーがGitHubアカウントに追加されていない
- SSHエージェントが正しく起動していない
- 誤ったSSHキーが使用されている
このエラーが発生する原因
このエラーの主な原因は、SSHキーに関連する設定ミスです。以下に、一般的な原因をいくつか挙げます。
- SSHキーが生成されていない。
- 生成したSSHキーがGitHubアカウントに追加されていない。
- SSHエージェントが動作していない。
- 使用するSSHキーが間違っている。
- SSHの設定ファイルに問題がある。
解決方法
解決方法 1: SSHキーの生成と登録
-
ターミナルを開き、次のコマンドを入力してSSHキーを生成します。
bash
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
このコマンドは、指定したメールアドレスに基づいてSSHキーを生成します。 - 生成されたSSHキーをGitHubアカウントに追加します。次のコマンドで公開鍵の内容をクリップボードにコピーします。
- macOS:
bash
pbcopy < ~/.ssh/id_rsa.pub - Linux:
bash
xclip -sel clip < ~/.ssh/id_rsa.pub -
Windows(PowerShell):
powershell
Get-Content ~/.ssh/id_rsa.pub | Set-Clipboard - GitHubにログインし、右上のプロフィール写真をクリックして「Settings」を選択します。「SSH and GPG keys」をクリックし、「New SSH key」を選択します。クリップボードにコピーしたSSHキーを貼り付けて、「Add SSH key」をクリックします。
解決方法 2: SSHエージェントの起動とキーの追加
-
ターミナルでSSHエージェントを起動します。
bash
eval "$(ssh-agent -s)" -
次に、SSHキーをエージェントに追加します。
bash
ssh-add ~/.ssh/id_rsa
この手順を実行することで、SSHエージェントが正しく動作し、GitHubに接続できるようになります。
解決方法 3: SSH設定ファイルの確認
-
~/.ssh/configファイルを開きます。存在しない場合は作成します。
bash
nano ~/.ssh/config -
以下の内容を追加します。
Host github.com
IdentityFile ~/.ssh/id_rsa
この設定により、指定したSSHキーがGitHubに接続する際に使用されるようになります。
解決方法 4: SSH接続のテスト
- SSH接続が正しく設定されているかを確認するために、次のコマンドを実行します。
bash
ssh -T git@github.com
接続が成功すると、「Hi username! You’ve successfully authenticated, but GitHub does not provide shell access.」というメッセージが表示されます。
解決方法 5: 既存のSSHキーのパーミッションを修正
SSHキーのファイルパーミッションが適切でない場合もエラーが発生します。次のコマンドでパーミッションを修正します。
chmod 400 ~/.ssh/id_rsa
このコマンドにより、SSHキーがオーナーのみ読み取り可能となり、適切な設定になります。
エラーの予防方法
エラーを未然に防ぐためには、以下の点に注意してください。
- SSHキーは定期的に確認し、必要に応じて新しいキーを生成する。
- GitHubアカウントに正しいSSHキーが追加されているか確認する。
- SSHエージェントが常に起動していることを確認する。
まとめ
「git@github.com: Permission denied (publickey)」というエラーは、SSHキーに関する設定ミスが主な原因です。この記事では、SSHキーの生成から登録、SSHエージェントの設定、接続のテストまでの手順を詳しく説明しました。これらの手順を実行することで、エラーを解決し、スムーズにGitHubにアクセスできるようになります。

コメント