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 で、初期値の設定と選択状態のクリア