はじめに
GitHubリポジトリへpushする際に、毎回ユーザ名とパスワードを入力していました。
面倒だと感じたため、備忘録として記事にします。
問題
git push origin main
コマンドを実行した後、毎回ユーザ名とパスワードを入力していました。
入力せずにコマンドを実行したいと考えていました。
$ git push origin main
# コマンドを実行後、入力を求められる
Username for 'https://github.com': ユーザー名
Password for 'https://asa129@github.com':パスワード
解決方法
以下の手順でSSHキーを登録、リモートリポジトリのURLを変更することで解決しました。
- SSHキーを作る
- SSHエージェントの起動
- 公開鍵のコピー
- GitHubに公開鍵を追加
- リモートリポジトリのURLを変更
①SSHキーを作る
$ ssh-keygen -t ed25519 -C "GitHubアカウントに登録しているメールアドレス"
# キーの保存場所を聞かれる、デフォルト設定のままEnter
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/test/.ssh/id_ed25519):
# パスフレーズの設定、デフォルト設定のままEnter(セキュリティを高めたい場合は入力する)
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
②SSHエージェントの起動
$ eval "$(ssh-agent -s)"
# 秘密鍵をSSHエージェントに追加
$ ssh-add ~/.ssh/id_ed25519
③公開鍵のコピー
# 公開鍵を表示、コピーする
$ cat ~/.ssh/id_ed25519.pub
④GitHubに公開鍵を追加
- プロフィールアイコンから
Settings
を選択
⑤リモートURLの変更
# 現在のリモートリポジトリ情報を確認
$ git remote -v
e.g)
origin https://github.com/asa129/react-router-lesson.git (fetch)
origin https://github.com/asa129/react-router-lesson.git (push)
# リモートリポジトリのURLを変更
$ git remote set-url origin リモートリポジトリURL(SSH)
# 変更後のリモートリポジトリ情報を確認
$ git remote -v
e.g)
origin git@github.com:asa129/react-router-lesson.git (fetch)
origin git@github.com:asa129/react-router-lesson.git (push)
SSHのURLは登録したいリポジトリのCode
からSSH
を選択でコピー可能
⑥接続テスト
$ ssh -T git@github.com
Hi ユーザー名! You've successfully authenticated,~
のメッセージが出れば成功
おわりに
面倒だといいながら1週間後回しにしてました。