📖

個人開発 Git を SSH 公開鍵接続で Github と連携セットアップ

2023/03/05に公開

環境

  • WSL2 (Win10 64bit)
  • Ubuntu 22.04.2 LTS

手順

  • 参考リンクhttps://docs.github.com/ja/get-started/quickstart/set-up-git

  • Github でプライベートリポジトリを作成
    https://github.com/new

  • プロファイルを設定

$ git config --global user.name 'userName'
$ git config --global user.email 'example@mail.com'
  • SSH で公開鍵接続したいので key を生成
$ ssh-keygen -t ed25519 -C "example@mail.com"
  • passphrase を設定した場合、git 接続時にいちいち入力しなくていいように以下を ~/.bashrc に追加
env=~/.ssh/agent.env

agent_load_env () { test -f "$env" && . "$env" >| /dev/null ; }

agent_start () {
    (umask 077; ssh-agent >| "$env")
    . "$env" >| /dev/null ; }

agent_load_env

# agent_run_state: 0=agent running w/ key; 1=agent w/o key; 2=agent not running
agent_run_state=$(ssh-add -l >| /dev/null 2>&1; echo $?)

if [ ! "$SSH_AUTH_SOCK" ] || [ $agent_run_state = 2 ]; then
    agent_start
    ssh-add
elif [ "$SSH_AUTH_SOCK" ] && [ $agent_run_state = 1 ]; then
    ssh-add
fi

unset env
  • 上記スクリプトを使用して ssh-agent を起動、passphrase を聞かれるので入力
$ source ~/.bashrc
  • 作成した key を cat で出力し、コピーしておく
$ cat ~/.ssh/id_ed25519.pub
  • https://github.com/settings/ssh/new の Key にペースト、Titleをつけて保存。Key Type はAuthentication Key

  • 先にセットアップしたリポジトリ(空)を、ローカルに clone できれば接続できている

$ git clone git@github.com:xxxxxxxxxx
  • そのまま master ブランチ作成まで実施する場合は以下も実施

  • リポジトリ名と同じ名前のフォルダができているので、中に README.md を作成して保存

$ cd repository
$ touch README.md
$ vim README.md
  • master をチェックアウトしておく
$ git checkout master
  • -u で upstream をセットしつつ push
$ git add README.md
$ git commit -m 'first commit'
$ git push -u origin master
  • Github で push できていることを確認して完了

Discussion