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
は共通のユーザ名。自分のユーザ名を指定するわけではない
どうやって認証しているのか
- PCから
ssh -T git@github.com
を実行 - GitHub は、「この人の持ってる秘密鍵に対応する公開鍵が、うちに登録されているか?」を確認
- ローカルで秘密鍵を使って署名したデータを GitHub に送り、
- 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 ユーザ名を入力する機会がない
☺️
おつかれさま!
ここまで実施することで、今後は毎回パスワードを聞かれなくなります。
↑
大したことはやっていないのだが、こう書きたくなる程度に敷居を感じていたのだ