Oteto Blogのロゴ

【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. 公開鍵を生成する

$ cd ~/.ssh

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

$ 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. 公開鍵をコピーする

$ 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. 接続確認

ssh -T git@github.com

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

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

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