GitHub で 2FA 設定済アカウントの Private Repository をクローン
はじめに
GitHub で 2FA(2段階認証・2要素認証) を設定したアカウントの Private Repository を Clone する方法。
サーバなど普段使いの PC 以外で Private Repo をクローンしたい時など。
TL;DR
- 2FA 未設定- git clone https://<user>@github.com/<repo user>/<repo>.gitでいける
 
- 2FA 設定済- New personal access token で新規トークンを作成
- git clone https://<user>@github.com/<repo user>/<repo>.gitのパスワードにトークンを入力
 
- パスワード/トークン を保持したい場合- credential.helperを設定- git config credential.helper cacheで一時保持
- git config credential.helper storeで保存
 
 
目次
詳細
プライベートリポジトリのクローン
2FA 設定未
2FA 未設定なら、この後に通常のパスワード入力でいける(はず)
| 1 | $ git clone https://<user>@github.com/<repo user>/<repo>.git | 
2FA 設定済
2FA 設定済だとパスワードを入力してもエラーになる。
| 1 | $ git clone https://<user>@github.com/<repo user>/<repo>.git | 
2FA 設定済の場合は personal access token を使う。
New personal access token で repo にチェック入れて作成。
Token をコピーして、パスワードを求められたら入力。Token は1度だけしか表示されないので注意。
| 1 | $ git clone https://<user>@github.com/<repo user>/<repo>.git | 
パスワードの保持(キャッシュ・永続化)
毎回パスワードや Token を打つのは面倒、って場合はパスワードを保持(キャッシュや永続化)するようにする。
参考: Caching your GitHub password in Git - GitHub Help
下記設定の後に、Clone や Pull などリモートリポジトリの操作でパスワードを入力すれば、パスワードが保持される。
Mac
| 1 | $ git credential-osxkeychain | 
Linux
キャッシュの有効期限はデフォルト 15分なので注意。
| 1 | $ git config --global credential.helper cache | 
キャッシュの有効期限を変更したい場合は --timeout オプションを設定する、単位は秒。
| 1 | # 60秒(= 1分) * 60 => 1時間 | 
期限なしに保存したい場合には cache ではなく store を指定する。
| 1 | $ git config --global credential.helper store | 
ただし、store だとトークンが平文で保存されてしまうので注意。
| 1 | # --global とした場合は ~/.git-credential に保存 | 
まとめ
- 2FA 未設定- git clone https://<user>@github.com/<repo user>/<repo>.gitでいける
 
- 2FA 設定済- New personal access token で新規トークンを作成
- git clone https://<user>@github.com/<repo user>/<repo>.gitのパスワードにトークンを入力
 
- パスワード/トークン を保持したい場合- credential.helperを設定- git config credential.helper cacheで一時保持
- git config credential.helper storeで保存
 
 
参考文献
- GitHubに二段階認証を設定した後にGit操作できない時の解決策 - Qiita
- GitHubの2段階認証を有効にした状態で、repositoryの操作をコマンドラインで行うためのメモ
- GitHubのプライベートリポジトリをgit clone - Qiita
- GitHubのPrivateリポジトリからCloneする方法
- 無精してSSH Keyを登録せずにPrivate Repositoryをクローンする | ハックノート
- Caching your GitHub password in Git - GitHub Help
- Git - 認証情報の保存
- git - Is there a way to cache GitHub credentials for pushing commits? - Stack Overflow
関連記事
- GitHub のリポジトリをプライベートリポジトリにクローンする方法
- Git で package-lock.json がコンフリクトした時の解決方法
- Git で composer.lock の content-hash がコンフリクトした時の解決方法
- Twitterデータの tweet.js を読み込んで全ツイート履歴を表示するツール「tweet.js loader」の技術面
- docs から作った GitHub Pages の sitemap 生成と Search Console への登録
- Vue CLI で作った Vue Router 利用プロジェクトを GitHub Pages で公開する方法
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア
