【git エラー解決策】Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. が出た時の解決方法
【2019/6/22 更新】わかりやすいように改善しました。
自分の動作環境(他の環境でも問題なしです)
- Homestead
- Vagrant
- git
エラー文章
$ git push origin master Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
この問題のポイント
- 対象のリモートリポジトリへのアクセス権限がなく失敗した。
解決策
- 鍵認証周りを再設定し直す。
よって、解決までの流れは
- 1:鍵を作成する。
- 2:作成した鍵をコピーする。
- 3:gitghubに公開鍵を登録する。
- 4:configファイルを作成し直す。(接続確認)
解決方法
1:鍵を作成する。
# 鍵を作成する。 (メールアドレスはgitアカウントのメールアドレスです) $ ssh-keygen -t rsa -C mail@mail.com Enter file in which to save the key (/home/vagrant/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
※ssh-keygenコマンドについて
※keygen実行後の3つの質問について。
- ssh-kegen実行時に何かを聞かれるので、Enterを3回押せば先へ進めます。
※3つの質問の意味
- 1 鍵ファイルを保存するフォルダはどこか (Enter file in which to save the key)
- 2パスフレーズを入力してください (Enter passphrase:)
- 3パスフレーズを再度入力してください (Enter same passphrase again:)
(※パスフレーズとはパスワードのようなものです。パスワードよりも長大な値を設定できます。 )
2:作成した鍵をコピーする。
# 鍵ファイル id_rsa とid_rsaとid_rsa.pubができていることを確認 $ ls ~/.ssh/ id_rsa id_rsa.pub
→この公開鍵をgithubに登録し直します。
# id_rsa.pubを開く $ less ~/.ssh/id_rsa.pub
↓こんな文字列が書かれているかと思います。鍵の情報です。
ssh-rsa xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx mail@mail.com
3:githubで鍵を登録する
- 次はgithubのマイページで、この鍵を登録します。
- 右上のアイコンをクリックし、settings → SSH and GPG keysをクリックしてください。
- 次に、右上のnew keysをクリックしてください。
鍵の登録画面が現れます。
- 先ほどコピーした公開鍵 id_ras.pubの文字列をkeyの箇所に貼り付けてください(titleは任意の値です。)
- ちなみにコピーした文字列の末尾のメールアドレスは入力に含めないでください。
ここまでできたらgithubでの作業は終わりです。ターミナルに戻ります。
4:ターミナルにて設定を行い、疎通確認
configファイルを作成します。
$ vim ~/.ssh/config
~/.ssh/config
Host github HostName github.com IdentityFile ~/.ssh/id_rsa User git
↑を貼り付けてください (すでにこのファイルがある場合で、先へ進めない場合には、このファイルを一度再作成しなおしてみてください。)
接続確認
$ ssh -T git@github.com Hi xxxxxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
- これでsuccessfullyの文字が出れば接続成功です。
git pushができるようになっていると思います。鍵を作成し直すという強引な方法ですがこちらで解決できます。
おさらい
流れは以下の通りです。
この問題のポイント
- 対象のリモートリポジトリへのアクセス権限がなく失敗した。
解決策
- 鍵認証周りを再設定し直す。
よって、解決までの流れは
- 1:鍵を作成する。
- 2:作成した鍵をコピーする。
- 3:gitghubに公開鍵を登録する。
- 4:configファイルを作成し直す。(接続確認)
以上、git pushの際にエラーが出た場合の対応方法でした。