git push ができない(permission denied (publickey))

初めに

  • リモートリポジトリにpushした時のエラー解決方法を記述していこうと思います。

    前提

  • GitHubにてgit_introと言うリポジトリを作成した。

  • 変更したいファイルはgit addでステージングエリアに追加しローカルリポジトリにコミットをした。

エラー内容

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.

考えたこと

  • 権限がない = 変更をローカルリポジトリに許可されていない。
  • Permission denied (publickey)をググるsshキーに関する記事がヒットした。
  • キーがないからパーミッションが弾かれる?

結論

  • ギットハブに必要なキーがないことが発覚。

キーの作成・登録手順

  • ギットハブに必要なキーを作成する

  • ターミナルでssh-keygenを入力。

  • 公開キーと秘密キーの作成を行うコマンド。
  • ls ~/.sshコマンドでキーが作成されているか確認
  • 作成したキーをギットハブに登録
  • cat ~/.ssh/id_rsa.pubを打って鍵の中身を確認する。
  • 中身をコピーしてギットハブに登録する。
  • ギットハブとの接続確認
  • ターミナルでssh -T git@github.comを打つ

ギットハブに必要なキーを作成する

  • ssh-keygenをターミナルを入力。
  • 実行後に入力を求められるが、すべてEnterを押す。
  • ssh-keygenコマンドは秘密キーと公開キーを作成するコマンドである。
  • 生成されたキーはターミナルでls ~/.sshコマンドを入力することで確認ができる。
  • id_rsa id_rsa.pub などが確認できます。
  • id_rsa は秘密キー。id_rsa.pubは公開キー。

作成したキーをギットハブに登録

  • $ cat ~/.ssh/id_rsa.pubで公開キーの内容を表示する。
  • 多くの文字が表示されるが全てコピーをする。

  • ブラウザにてギットハブを開き、setting→ SSH and GPG keys→ New SSH key をクリック

  • titleは好きな名前を入力し、key typeはAuthentication Keyを選択。Keyにはcat ~/.ssh/id_rsa.pubで表示された内容を貼り付けする。

ギットハブとの接続確認

  • ターミナル上でssh -T git@github.comを入力
  • Hi *******! You've successfully authenticated, but GitHub does not provide shell access.が出力されれば完了。