【Git】Permission denied (publickey)というエラーの対処法

困ったこと

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.

リモートリポジトリにpushしようとしたらこのようなエラーが出た。

解決法

原因はssh接続をするための公開鍵を設定していなかったこと。

1. 公開鍵を生成する

Terminal window
$ cd ~/.ssh

まずは.sshディレクトリに移動する。

Terminal window
$ ssh-keygen

公開鍵を生成するコマンドを叩く。

enerating public/private rsa key pair.
Enter file in which to save the key (/Users/.../.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/.../.ssh/id_rsa.
Your public key has been saved in /Users/.../.ssh/id_rsa.pub.
The key fingerprint is:

色々聞かれますが全部Enterを押す。

The key's randomart image is:

このようなテキストの下に、謎の模様のようなものが表示されればOK。これで.ssh_id_rsaに公開鍵が生成される。

2. 公開鍵をコピーする

Terminal window
$ pbcopy < ~/.ssh/id_rsa.pub

先ほど生成した公開鍵をコピーする。

3. GitHubで公開鍵を登録する

GitHub上で公開鍵を設定していく。

「Settings」をクリック

「Settings」をクリック。

「SSH and GPG keys」をクリック

「SSH and GPG keys」をクリック。

「New SSH key」をクリック

「New SSH key」をクリック。

コピーした公開鍵をペーストする

「Key」のテキストエリアに、先ほどコピーした公開鍵をペーストする。

最後に「Add SSH key」をクリックすれば設定完了。

4. 接続確認

Terminal window
ssh -T git@github.com

上のコマンドを叩くと、公開鍵が合っているか・接続できているか確認できる。

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

こんな感じの気さくな文章が出力されればOK。無事にpushもできるようになった。

1

参考
  1. SSH認証キーをGitHubへ設定する。(Mac用) - Qiita