git push origin master
で吐かれたエラーを解決した方法の備忘録です
やろうとしていた事
新しいリポジトリを作成したので、ファーストコミットをリモートにpushしようとしていました
現象
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
それまでにやっていた事の時系列
①ローカルでリポジトリの作成
$ git init
→無事完了していました
②変更点の登録
$ git add .
→問題なし
③コミット
$ git ci -m "Feat:first-commit"
... エイリアスつけてます
→問題なし
④masterにpush
$ git push origin master
→ここでエラー!
原因
githubに公開鍵の設定ができていない、又は再度pushが必要とのことでした
エラーの確認① githubとSSH接続できるかチェックしてみる
$ ssh -T git@github.com
成功例は↓こうなります↓
Hi 俺君! You've successfully authenticated, but GitHub does not provide shell access.
エラーを吐くと↓こうなります↓
Warning: Permanently added the RSA host key for IP address '俺君のIPアドレス' to the list of known hosts.
git@github.com: Permission denied (publickey).
上記と同じエラーを吐いていました
解決手順
① 鍵のペアがあるか確認してみる
移動します
$ cd ~/.ssh
ここで、配下にファイルが存在するか確認しましょう
$ ls
id_rsa id_rsa.pub
このペアが存在すればOKです
無ければ生成しましょう!
①-2 鍵のペアを生成する(必要な人だけ)
$ ssh-keygen -t rsa
Enter連打して完了です
② その公開鍵(id_rsa.pub)をgithubに登録する
まず、githubを開きます
自分のアイコンをクリックして、「Settings」を押します
↓この画像↓の色が変わっている「SSH and GPG kes」をクリックします
次に、画面右側あたりの緑色のボタン、「new SSH key」をクリックします
【Title】
公開鍵の使用用途を書きましょう、忘れないために...
【Key】
ここに公開鍵の情報をバシッとコピペするのですが、下記2パターンで取得できます
①ターミナルから、クリップボードにコピーさせちゃう方法
$ pbcopy < ~/.ssh/id_rsa.pub
②catして、自分でコピー取る方法
$ cat ~/.ssh/id_rsa.pub
どちらでも大丈夫ですが、改行や空白が入らない様に気をつけてください
では、取得した情報をバシッと貼り付けて保存しましょう
③もう一度ssh接続をテストする
先ほどと同じコマンドです
ssh -T git@github.com
うまくいけばこれで完了です
ちゃんとpushできるようになりました
参考文献