" いいね " なライフをつくる。

うそはつかない。"いいね"をつくる。じゆーうな日記です。

【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 更新】わかりやすいように改善しました。

自分の動作環境(他の環境でも問題なしです)

エラー文章

$ 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コマンドについて
  • ssh-keygenは認証用の鍵を作成するコマンドです

  • ssh-keygenの後ろの、-t rsa というオプションは、RSA暗号というタイプの暗号の鍵を生成するという意味合いです。

※keygen実行後の3つの質問について。
  • ssh-kegen実行時に何かを聞かれるので、Enterを3回押せば先へ進めます。
※3つの質問の意味
  • 1 鍵ファイルを保存するフォルダはどこか (Enter file in which to save the key)
  • パスフレーズを入力してください (Enter passphrase:)
  • パスフレーズを再度入力してください (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
  • id_rsa.pubの中の文字列 ssh-rsa〜xxxxxの終わりまでをコピーします。 (mail@mail.comは不要です)

3:githubで鍵を登録する

  • 次はgithubのマイページで、この鍵を登録します。
  • 右上のアイコンをクリックし、settings → SSH and GPG keysをクリックしてください。
  • 次に、右上のnew keysをクリックしてください。

鍵の登録画面が現れます。

f:id:tusukurukun:20180829014336p:plain

  • 先ほどコピーした公開鍵 id_ras.pubの文字列をkeyの箇所に貼り付けてください(titleは任意の値です。)

f:id:tusukurukun:20180829014424p:plain

  • ちなみにコピーした文字列の末尾のメールアドレスは入力に含めないでください。

ここまでできたら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の際にエラーが出た場合の対応方法でした。