Skip to main content

git clone (GitHub から)

前提

clone の対象

  • GitHubユーザ名 : sugoi_user
  • プロジェクト名 : sugoi-project

方式

  • ssh 公開鍵認証、の方式を使用
  • これにより、パスワード入力を毎回する必要がなくなる

※ 特に GitHub は https で パスワードでの clone が不可になったため、この機会にそうする

イメージ

環境

Windows の場合は Git for Windows がインストールされていて、git bash が使用可能のこと

操作 1. SSH キー生成

bash
ssh-keygen -t ed25519 -C "sugoi_user@sugoi-domain.com"
  • -t ed25519 は キーの種類で、デフォルトであるものの、明示した
  • -C "sugoi_user@sugo-domain.com" は、メールアドレスでなくても良くて、識別できれば何でも良い

選択肢

  • ファイル名はデフォルトのまま Enter
  • パスフレーズは、なしでも良いが、人には渡さない

→ ファイルが 2 つ、作られる

ファイル名種類説明
id_ed25519秘密鍵どこにも貼りつけたり公開してはいけない
id_ed25519.pub公開鍵GitHub 側に SSH key として貼るもの

※ 引数の説明

項目説明
-t ed25519標準的な鍵タイプの名前。これはテキトウな文字列ではない
-C "..."自分が識別できれば良いので何でも良い

操作 2. 公開鍵を GitHub に登録

Settings > SSH and GPG keys > SSH Keys > New SSH key

項目意味説明
Title識別名何でも良くて、PC名とかで良い
Key Typeキーの種類Authentication Key (デフォルトのまま)
Key公開鍵cat ~/.ssh/id_ed25519.pub の内容を貼る

操作 3. 接続確認

bash
ssh -T git@github.com
  • git は共通のユーザ名。自分のユーザ名を指定するわけではない

どうやって認証しているのか

  1. PCから ssh -T git@github.com を実行
  2. GitHub は、「この人の持ってる秘密鍵に対応する公開鍵が、うちに登録されているか?」を確認
  3. ローカルで秘密鍵を使って署名したデータを GitHub に送り、
  4. GitHub 側が「登録されている公開鍵で復号できる」ことをもって、本人確認成功

このとき、ローカルにある公開鍵は 使わない (ただの理解のためのメモ)

操作 4. git clone する

これで git clone などを以下の形式で使えるようになる

bash
git clone git@github.com:sugoi_developper/sugoi-project.git
  • sugoi_developper さんの sugoi-project を clone したいとする。 git は共通のユーザ名で固定
  • つまり、鍵認証の場合、自分のプロダクトを clone する場合でなければ、自分の GitHub ユーザ名を入力する機会がない

☺️

おつかれさま!

ここまで実施することで、今後は毎回パスワードを聞かれなくなります。


大したことはやっていないのだが、こう書きたくなる程度に敷居を感じていたのだ