【git pushエラー】: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. の対処策

git

こんにちは。
4児パパです。

最近多忙過ぎてメッキリこのブログを更新できないでいます。
ただやっぱり物書きは嫌いではないので、時たまこの記事の様に備忘録として残しておくと、未来の自分が今の自分(既に過去になる)を参考にして、困った時の手助けとなってくれます。

今回は一度git pushした時のエラーで、一度設定してしまえば、恐らく新規立ち上げの時以外には出くわさないエラーの解決策を備忘録として残しておきます。

gitのエラーもWeb開発では避けて通れない

Web開発していてると、いろんな場面でエラーやバグに出くわします。

  • syntax error(構文エラー)
  • バリデーションエラー
  • サーバーにデプロイした時のエラー
  • ローカル環境でのエラー

時たまそのエラーやバグに出くわすことで、おもいっきり萎えてしまう事もあります。

gitについては『サルでもわかるgit入門』がおすすめです

プログラミングを学び始めて実際にWeb開発していくと、Gitを必ず学びます。
その際参考にしてください!と勧められるのが、『サルでもわかるgit入門』というサイトですね。

実際にプロのエンジニアでも参考にすることがあります。

とてもわかりやすくgitの解説をしていますので、困った際にはぜひ参考にしてみてください。絵も上手に使われていますので、何かと助けてもらえるかもです。

gitについての書籍も分かりやすく解説

Web制作者のためのGitHubの教科書 は発行年がだいぶ立っていますが、まだまだ参考になる技術書です。git自体のコマンドなどは変わらないのと、チーム開発などのpull リクエストなどが分かりやすく解説しています。

サルでもわかるGit入門は今までにgitを触った事ない初心者にも優しい本になっています。Gitクライアントソフト「Sourcetree」と「Backlog」を利用したGitの解説もしています。gitを1から学び切れる技術本です!

git pushの際に:Permission deniedされた時

Railsに限らずPHPでも他の言語でも、gitを使用しますよね。
その際に最初の段階で、

$git push origin master

このコマンドでgithubへpushした時に下記のエラーが出た際、

: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

このエラーは簡単に解決できますので、焦らず対処していきましょう。

push時のエラーメッセージから原因を見つける

まずエラーやバグは、避けて通りたいですが、でもエラーメッセージは友達になろう

  • : Permission denied (publickey).
  • Could not read from remote repository.
  • Please make sure you have the correct access rights
    and the repository exists.

上記三つに細分化した時にヒントがあります。

エラーメッセージからの解決策は上から順にみる

Web開発ではエラーは避けて通れない。
実際にエラーメッセージから解決してみる。

: Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.

各メッセージから情報を読み取ってみる。

Permission denied (publickey).

*パブリックキーで権限の拒否がされたよー

Could not read from remote repository.

*リモートリポジトリが読み取れないよー

この段階でじゃどうするか。
リモートするリポジトリの確認してみよう。

$git remote -v

このコマンドで、下記の様に出れば正常。

origin  git@github.com:githubaccaunt/projectname.git (fetch)
origin  git@github.com:githubaccaunt/projectname.git (push)

エラーのヒント達と友達に

エラー解決の為にコマンドしたもの達でも解決し得なかった場合、そこから新たにエラーメッセージで怒られます。そこから次のヒントへ向かいます。

Please make sure you have the correct access rights
and the repository exists.

*アクセス権持っている?それともリポジトリ自体存在しているのかい?

→ここのヒントはとても大きい。

私のケースでは、リモートするアクセス権がなかったので、接続確認をして公開鍵登録してそれをpushしました。

公開鍵の作成

githubへ接続は、公開鍵と秘密鍵が必要です。
その中で公開鍵の作成をします。

$ ssh-keygen -t rsa -C "ur_emailadd@gmail.com"

enterを1回押し、overright?と聞かれます。その時にyかnを問われますので、yを入力してenterを押してください。
順当にいきますとid_rsa.pubというファイルが作成され、その中身を今度はgithub側へ登録します。

公開鍵とgithubへの接続へ

公開鍵が登録ファイルへの確認をします。

$ cat ~/.ssh/id_rsa.pub
ssh-rsa  AAXCCAB2NmmC1~~~~~~~~~~~~~@gmail.com

このid_rsa.pubファイルの中から、”ssh-rsa”登録されているメールアドレスの最終文字までコピーします。

githubへアクセス

プロフィール画像をクリックした時のsettingをクリック。

New SSH key登録画面まで進みます。

New SSH keyをクリックして、登録画面まで進みます。

SSH Keyの登録

SSH keyの登録画面まで進んだら、[$ssh-rsa AAXCCAB2NmmC1~~~~~~~~~~~~~@gmail.com]で登録されているメールアドレスの最終文字まで全てをコピペします。

Githubへ登録されているかの確認

$ cd プロジェクト名

git initをしたディレクト下に戻り、

$ ssh -T git@github.com Hi xyzxyzxyzxyzxxxx! You've successfully authenticated, but GitHub does not provide shell access.

ここまでくれば完了になります。

gitリモート接続登録

$git remote add origin https://github.com/githubaccaunt/projectname.git

このgitコマンドを入力して、githubへリモート接続登録をします。

$git remote -v
origin  git@github.com:githubaccaunt/projectname.git (fetch)
origin  git@github.com:githubaccaunt/projectname.git (push)

この様に出力されましたら、完了です。

最後に

ブログも大好きですが、Web開発は夢がある事を重々感じています。
だって素敵ではないですか?
自分の苦労して作り上げたプロダクトが、世界中の人に使用してもらえるの事が可能になるのですよ。

確かに一つのサービスを立ち上げるのに、何時間も投下しなくてはなりません。思った様に仕様を作りあげることに、困難さを覚える事もあるでしょう。それでもなお、頑張るからこそやりがいと夢を実感できます。

自分の思い描いているものを、現実化出来るのがエンジニアと起業家です。

自分の思い描いているものが現実化へ向かうほどに、滾ってしまってワクワクしますね。

人生伸びしろしかありませんから。


4児パパ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です