sshの鍵生成とgitの初期設定

すごい今更だが,前回Chocolateyを使ってWindows ストアアプリ開発環境を構築するでgitを導入したので,設定も記述しておこうと思う. (ここの部分を記述した記事は山ほどあるので,意味はないと思うけど)

ssh用の鍵生成

gitサーバとは公開鍵認証を行うので,まずPCの鍵を生成する.

Terminalのコマンドで以下のコマンドを入力する. 途中でパスフレーズの入力を求められるが,設定せずにEnterを連打する.

  • -t は鍵のタイプでrsaを指定(ただ,デフォルトがrsaなのでしてしなくても構わない)
  • -b は鍵の長さで2048ビットを指定
  • -C はコメントで書きに関するメモを書いておく(ユーザ名とPC名を書いている)
$ ssh-keygen -t rsa -b 2048 -C '<ユーザ名>@<PC名>'

すると,~/.ssh以下に鍵が作成される.

  • id_rsa(秘密鍵)
  • id_rsa.pub(公開鍵)

公開鍵は外部に出しても問題ないが,秘密鍵は消して出してはならない. 送信なども控えるべき(httpsなど安全な通信路が確保されてればいいが,秘密鍵は一切外に出す必要がないものなので出さないほうが賢明だと思う).

GitHubに公開鍵を登録する

作成した公開鍵をGitHubなどの,gitサーバに配置する.

まず,公開鍵をクリップボードにコピーする(ssh-copy-idもあるが,今回はGitHubなので手動で).

cat ~/.ssh/id_rsa.pub | clip

macの場合はclipではなくpbcopyコマンドで同じ効果が得られる. 意外に,clip,pbcopyは知られていないコマンドな気がする.

cat ~/.ssh/id_rsa.pub | pbcopy

ターミナルを選択してコピーすると変な改行や文字が入ったりするのでお勧めしない.

最後に,GitHubに鍵を登録する.

GitHubに公開鍵を登録

  1. GitHubの鍵登録画面へ移動(https://github.com/settings/ssh)
  2. Add SSH keyボタンの押下
  3. Titleに鍵の名前をつける(<ユーザ名@PC名>など)
  4. Keyに鍵を貼り付ける

gitの初期設定

gitはもう利用できるが,コミットした時に表示されるコミッター名やメールアドレス等の設定をしておく.

最低限使うのは以下のとおり.

git config --global user.name "John Doe"
git config --global user.mail "john_doe@example.com"
git config --global color.ui auto
git config --global alias.st status
git config --global alias.l 'log --oneline -5'
git config --global alias.ll 'log --oneline'
  • user.name は自分のユーザ名を入力
  • user.mail は自分のメールアドレスを入力
  • color.ui はgitコマンドの出力結果をカラーにする
  • alias.st はgit statusのショートカットを設定している.git stで実行できる
  • alias.l はgit log --oneline -5のショートカット(コミットログを1行表示で5行表示する)
  • alias.ll はgit log --onelineのショートカット(コミットログを1行表示で表示する)

alias.<alias名>で独自のショートカットを定義できる.間違えたら

git config --global --unset alias.<name>

で消す事ができる.

リポジトリの準備

リポジトリのcloneは次のコマンドで行う.

git clone <Repository Name>

リモートリポジトリを設定する.

git remote add origin <remote repository>

また,リモートブランチの取得は次のコマンドで行う.

git checkout -b <local branch> origin/<remote branch>

むすび

以上が,鍵生成とgitの初期設定になる. こういう場合は鍵生成と初期設定の記事を分けたほうがいいのだろうか・・・. うーん.