要約
- Nulab連携 + 2要素認証を有効にしていると、NulabパスワードはHTTPS git認証に使えない
- Backlogの個人設定から Git(https)専用パスワード を発行して解決
状況
BacklogからHTTPS経由でgit cloneを実行したところ、IDとパスワードは合っているはずなのに認証エラーが発生した。
$ git clone https://xxx.backlog.jp/git/PROJECT/repo.git
Cloning into 'repo'...
Username for 'https://xxx.backlog.jp': your-id
Password for 'https://your-id@xxx.backlog.jp':
remote: Invalid username or password.
fatal: Authentication failed for 'https://xxx.backlog.jp/git/PROJECT/repo.git'
半日ほど悩んだ末、原因が判明した。
前提条件(環境)
- BacklogはNulabアカウントと連携済み
- Nulabで 2要素認証(2FA)を有効化 している
原因
Nulab連携をしている場合、git clone(HTTPS)のパスワードには通常Nulabのパスワードを使う。
しかし、Nulabで2要素認証を有効にしていると、NulabパスワードはHTTPS git認証に使えなくなる。
理由はシンプルで、HTTPS git認証には2FAを突破する仕組みがない。そのため、2FAを有効にした時点でNulabパスワードによるgit認証がブロックされる。
解決策:Backlog専用パスワードを発行する
以下の手順でGit(https)専用のパスワードを発行し、それを使う。
手順
- Backlogにログインする
- 画面右上の個人アイコン → 「個人設定」 を選択
- 左メニューの 「パスワード」 を選択
- 画面下部の 「新しいパスワードを発行」 で有効範囲を 「Git(https)」 に設定し、登録ボタンを押下
- 表示されたパスワードをgit clone時に使用する
$ git clone https://xxx.backlog.jp/git/PROJECT/repo.git
Username for 'https://xxx.backlog.jp': your-id
Password for 'https://your-id@xxx.backlog.jp': (発行されたパスワードを入力)
Cloning into 'repo'... ✅
まとめ
| 環境 | git clone時のパスワード |
|---|---|
| Nulab連携のみ | Nulabのパスワード |
| Nulab連携 + 2要素認証 | Backlog個人設定で発行した専用パスワード |
公式ドキュメントにも記載はあるが、エラーメッセージだけ見ていると気づきにくい。同じ状況でハマっている人の参考になれば幸いです。