Git & GitHub初期設定

Git & GitHub初期設定

初めに、私はMacユーザーなので動作確認はMac上でしか行っていません。

ユーザー名・メールアドレスを設定

ユーザー名・メールアドレスをGitに設定する事でCommitした時に誰が行ったかを記録できます。

画像にあるAuthorに当たる箇所です。

git config --global user.name 'kumatarou'
git config --global user.email 'kumatarou@local.com'

入力した内容が反映されたかを確認するには以下のコマンドを打ちます。

git config --global -l // グローバルに設定されたを確認できます

GitHubにSSH接続

リモートリポジトリにアクセス出来るようSSHの鍵を生成します。
既にSSH鍵がある方にはこのステップは必要ありません。(cd ~./sshで移動してlsコマンドでid_rsa/id_rsa.pubファイルがあれば既に生成済みです)

  • -t 鍵の種類を選択します。 Ed25519が安全面と性能面で最強みたいです。別の選択肢としてrsaがあります。
  • -C GitHubに設定したメールアドレスを指定。
  • -f ファイル名を指定。ファイル名は任意です。
  • -N パスフレーズの指定。 空にする事でパスフレーズなしになります。
ssh-keygen -t ed25519 -N "" -f ~/.ssh/sample -C 'sample@gmail.com'

参考にさせていただきました

https://qiita.com/ucan-lab/items/e02f2d3a35f266631f24#_reference-7cbea668d512073f0df4

作成された鍵を確認してみます。

.pub拡張子がついている公開鍵(public key)はSSHで接続したい先のサービス(GitHub, Gitlabなど)に登録します。

SSH通信をする際にローカルの秘密鍵と通信先に登録してある公開鍵が照合され認証が成功します。

この仕組みで秘密鍵を持っている自分のみが通信を許可されます。

// 公開鍵 ~/.ssh/sample.pub
ssh-ed25519 AAAAC3NzaR1lZDEGNSFDEFGAGEGx2bIPa5hbj/BiGyrP7Lodsl3ZdfeFWb9z sample@gmail.com
// 秘密鍵 ~/.ssh/sample
-----BEGIN OPENSSH PRIVATE KEY-----
f6BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAAAMwAAAAtzc2gtZW
QyNTUxOQAAACB8G4M8xz571yHontmIWbm8RmsVEqjDb2CoJNGECxCAFgAAAJhtRnIqbUZy
KgAAAAtzc1gtZWQyNTUxOQAAACB8G4M8xz571yHontmIWbm8RmsVEqjDb2CoJNGECxCAFg
AAAECtf4Yrv8eb1n4AD77lT/Qh4JCfJEOEtncubpFiO2b2f5wbgzzHPnvXIeie2YaZubxG
axUSqMNvYKgk0YQLEIAWAAAAEnNhbXBsZUBleGFtcGxlLmNvbQECAw==
-----END OPENSSH PRIVATE KEY-----

秘密鍵のパーミッションを600に変更します。

“ls -la”コマンドでパーミッションを確認して、該当ファイルが「-rw——-」となっていればOKです。

chmod 600 ~/.ssh/sample 

次にSSHのconfigファイルを編集します。

GitHubへSSH接続する時にどの秘密鍵を指定するのかを管理します。

この記述をする事により”ssh github.com“と入力するだけで、指定したホスト名・ユーザー名・秘密鍵が自動で設定されます。

$ vim ~/.ssh/config
Host *
  StrictHostKeyChecking no
  UserKnownHostsFile=/dev/null
  ServerAliveInterval 15
  ServerAliveCountMax 30
  AddKeysToAgent yes
  UseKeychain yes
  IdentitiesOnly yes

Host github.com
  HostName github.com
  User git
  IdentityFile ~/.ssh/sample

GitHubに生成した公開鍵を登録

// cat ~/.ssh/sampleとして出力された公開鍵をコピーするやり方もありますが"pbcopy"という便利なコマンドがあります
$ pbcopy < ~/.ssh/sample

公開鍵の設定画面で先ほどコピーした公開鍵を貼り付ける。
Titleは任意の値が設定可能ですが、どのPC名・サーバー名を入れている人が多いみたいです。
入力が完了したらAdd SSH keyをクリックします。

GitHubへのSSH接続を確認


$ ssh github.com
Hi sample! You've successfully authenticated, but GitHub does not provide shell access.

上記のメッセージが出ればSSH接続は成功です。

先ほど設定したconfigファイルがあるので、ssh github.comと指定するだけで記載した秘密鍵などが自動的に使われます。

configファイルがない場合は下記のように毎回sshコマンドを入力してSSH接続をしなければなりません。


# 公開鍵認証
ssh ユーザー名@ホスト名 -i ~/.ssh/鍵のパス

// ユーザー名 = configファイルでは 「User git」と設定している
// ホスト名   = configファイルでは 「Host github.com」と設定している