96098


PyPIまたはTestPyPIで二要素認証（2FA）を行いたいのですが、その前段階のリカバリコードの認証ができません。

* * *

img.1 二要素認証(2FA)でリカバリコードの使用を求められる

[![二要素認証\(2FA\)でリカバリコードの使用を求められる](https://i.stack.imgur.com/8p5AZ.png)](https://i.stack.imgur.com/8p5AZ.png)

* * *

リカバリコード発行までは進みます。しかし、テキストファイルでダウンロードして、その文字列をコピー＆ペーストしても「リカバリコード」「回復コードが無効です」と表示されます。

どのようにすれば2要素認証を登録できますでしょうか。お分かりの方、ご教授いただければ幸いです。

# TestPyPIおよびPyPIのリンク

[TestPyPI](https://test.pypi.org/)  
[PyPI](https://pypi.org/)

## PyPIにおける関連Q&A

[二要素認証とは何ですか？ また、PyPI上ではどのように動作しますか?](https://test.pypi.org/help/#twofa)

# 使用予定の認証アプリケーション（TOTP）

Android端末の[Google
Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=ja&gl=US)（プロプライエタリ）を使用予定

# 画面遷移

* * *

img.2 リカバリーコードの発行(.txtファイルとしてダウンロード保存)

[![リカバリーコードの発行](https://i.stack.imgur.com/Rr2Gl.png)](https://i.stack.imgur.com/Rr2Gl.png)

* * *

img.3 ダウンロードした.txtファイルの文字列をコピー＆ペースト

[![ダウンロードした.txtファイルの文字列をコピー＆ペースト](https://i.stack.imgur.com/ChJ5A.png)](https://i.stack.imgur.com/ChJ5A.png)

* * *

img.4 リカバリーコードが無効となる

[![リカバリーコードが無効となる](https://i.stack.imgur.com/PDpA1.png)](https://i.stack.imgur.com/PDpA1.png)


CC BY-SA 4.0
2023-08-31T09:01:40.543
96090
2023-09-19T13:59:04.213
2023-09-19T13:59:04.213
58938
58938
question
pip
PyPIまたはTestPyPIで二要素認証（2FA）を行いたい


複数行のリカバリコードから1行のみを選んで貼り付けたところ認証が通りました。

miy様の下記コメントをもって当質問の回答としたいと思います。  
ありがとうございました！

> リカバリーコードは16進数らしき16桁の文字列だと思いますが、そのようになっていますか？
> また、使用するのはその内の一つですが、複数行貼り付けてしまっている、ということはありませんか？

複数行※1をCopy&Pasteしておりました。ご指摘いただいたとおりに、1行のみを張り付けたところ、リカバリーコードでの認証が通りました。

無事、そのあとの二要素認証(2FA)も有効化できました。

※1 PyPI,
TestPyPIは16桁のリカバリーコード(例`259118ef********`)が8個セットで発行されるようです。私は、これを128桁のコード1つと捉えておりました。

### リカバリコードの認証から二要素認証(2FA)の有効化までの手順

img.1 リカバリコードの認証

[![リカバリコードの認証](https://i.stack.imgur.com/qBvPq.png)](https://i.stack.imgur.com/qBvPq.png)

img.2 二要素認証(2FA)の有効化

[![二要素認証\(2FA\)の有効化](https://i.stack.imgur.com/3xPMa.png)](https://i.stack.imgur.com/3xPMa.png)


CC BY-SA 4.0
2023-09-01T15:54:44.103
96098
2023-09-05T04:04:15.437
2023-09-05T04:04:15.437
3054
58938
96090
answer


補足

### なぜ複数のリカバリーコードが発行されるか

PyPIに限らずこういった種類のリカバリーコードは大抵の場合、複数発行されます。これは、リカバリーコードもある種のワンタイムパスワードだからです。

つまり、コードたちはそれぞれ一度ずつしか使用できません。リカバリーコードが8個の場合は、最大で8回だけリカバリーが可能です。テストで一個使いますから、本番で使えるのは7回分です。リカバリーは稀な作業ですし、通常はリカバリーすれば別のリカバリーコードを発行できるはずなので、これで十分なのです。


CC BY-SA 4.0
2023-09-05T04:00:45.977
96127
2023-09-05T04:00:45.977
3054
96090
answer