個人でしばらくgitを使っていなかったのですが、いろいろセキュリティ周りが変わっていたのでメモ。

事象

githubの初期設定で、下記をコピペして実行するも、pushできない

$ echo "# test" >> README.md
$ git init
$ git add README.md
$ git commit -m "first commit"
$ git branch -M main
$ git remote add origin https://github.com/erisunaga/test.git
$ git push -u origin main

解決方法:SSHで接続するようにする

  1. SSHの秘密鍵・公開鍵を作成
  2. Githubに公開鍵を登録
  3. GitをSSH接続に設定

①秘密鍵・公開鍵を作る

$ cd ~/.ssh
$ ssh-keygen -t ecdsa -b 521 -C “****@sample.com” // お作法として、メールアドレスをコメントで入れるらしい
$ ls
 id_ecdsa  id_ecdsa.pub

パスフレーズを聞かれるので、入力して覚えておくこと。

.pubが公開鍵。これをgithubに登録します。

②公開鍵を登録

https://github.com/settings/keys

こちらから公開鍵を登録できます。
「New SSH key」ボタンを押下し、Keyに.pubファイルの内容を貼り付け。

※.pubを開くときは、私は下記手順で行いました

$ cd ~/.ssh
$ open . //Finderで.sshフォルダを開きます

このあと、.pubファイルをアプリ指定で開く。テキストエディタで開けます。

③gitの設定

まず下記で、SSH接続できているか確認します。

$ ssh -T git@github.com
Enter passphrase for key '/Users/Eri/.ssh/id_ecdsa': //パスフレーズを入力
Hi erisunaga! You've successfully authenticated, but GitHub does not provide shell access.

リモートリポジトリのURLを変更します。

$ git remote set-url origin git@github.com:<Gitユーザー名>/<リポジトリ名>.git

//本例の場合は下記
$ git remote set-url origin git@github.com:erisunaga/test.git

結果

$ git pull
Enter passphrase for key '/Users/Eri/.ssh/id_ecdsa': 
Already up to date.

403エラーでなくなりました。