本日 Product Hunt に掲載中です! コメントを書く

Docker Hub の認証アプリを使う

Docker の二段階認証は、TOTP に対応した認証アプリならどれでも使えます。ブラウザ上のものも同じです。Docker アカウントで Account settings(アカウント設定)→ 2FA を開き、リカバリーコードを保存してから、Authenticator 拡張機能で画面の QR コードをスキャンします。

Docker アカウントは、ほかの人が pull するイメージを公開しています。あなたのパスワードでログインした人は、あなたの名前で汚染されたイメージを push したり、リポジトリを削除したり、後で使うアクセストークンを作ったりできます。2FA をオンにすると、Docker Hub や Docker Home へのサインイン時に、認証アプリの 6 桁のコードも求められます。

Docker アカウントで二段階認証を有効にする

Docker のパスワードと、アカウントに登録済みの確認済みメールアドレスが必要です。Docker では認証アプリは 1 アカウントに 1 つだけです。また 2FA をオンにすると、Docker CLI の docker login -u、スクリプト、CI ではパスワードが使えなくなります。それらにはパーソナルアクセストークンを作成してください。

  1. パソコンで app.docker.com から Docker アカウントにサインインします。
  2. 右上のアバターを選び、「Account settings」(アカウント設定)を選びます。
  3. 「2FA」を選び、アカウントのパスワードを入力して「Confirm」(確認)を選びます。
  4. 最初にリカバリーコードが表示されます。「Copy」(コピー)を選ぶか、横のメニューから「Download」(ダウンロード)または「Print」(印刷)を選び、このパソコン以外の場所に保管します。
  5. 「QR Code」タブに QR コードが表示されたら、そのページを開いたまま下の手順で拡張機能に追加します。キーは「Text Code」(テキストコード)タブにあります。その後、拡張機能のコードを「Authentication code」(認証コード)に入力し、「Enable 2FA」(2FA を有効化)を選びます。
Docker Hub 公式の手順

Docker Hub を Authenticator に追加する

  1. Chrome Web Store から 2FA 認証システム をインストールし、ツールバーに固定して、ワンクリックでアイコンを開けるようにします。
  2. Docker Hub の QR コードが表示されたページは開いたままにします。Authenticator のアイコンをクリックし、「アカウント追加」→「QRコード」→「画面からQRをスキャン」の順に選びます。
  3. アカウントがリストに追加され、30 秒ごとに変わる 6 桁のコードが表示されます。名前は自由に変更できます。名前は自分用の表示にすぎません。
  4. Docker Hub に戻り、表示中のコードを確認欄に入力します。期限切れ間近なら、次のコードを待ちましょう。
  5. Docker Hub で二段階認証が有効になったことが表示されます。以降はログインのたびにコードを求められるので、拡張機能のアイコンをクリックしてコピーしてください。

QR コードがない、またはスキャンできない場合は、Docker Hub の設定画面でキーを手動入力するオプションを探してキーをコピーし、拡張機能の「アカウント追加」→「手動入力」→「シークレットキー」から追加します。

2FA 認証システム を Chrome に追加(無料)

Docker のリカバリーコードを保管する

Docker のリカバリーコードは 1 つだけで、設定中に QR コードより先に表示されます。認証アプリを失くしたときにサインインできますが、使えるのは一度だけです。使うと 2FA がオフになってコードは削除されるので、その後 2FA をオンに戻します。まだサインインできる状態でコードを失くした場合は、Account settings →「2FA」を開いてパスワードを確認し、「Generate new code」(新しいコードを生成)を選びます。新しいコードが古いコードに置き換わります。

コードが受け付けられない場合

いちばん多いのは QR コードが変わったケースです。ウェブサイトは設定ページを再読み込みしたり開き直したりするたびに新しい QR コードを作るため、先に追加したアカウントは合わなくなります。設定を最初からやり直し、いま画面に出ている QR コードを追加して、そのコードをすぐに入力してください。同じサイトの項目が 2 つある場合は、新しいほうを使います。そのほかの原因:コードが拒否される理由。

キーを手で入力しましたか? キーをTOTP コード生成ツールに貼り付け、表示されるコードを拡張機能のコードと比べます。違っていれば、キーのコピーを間違えています。アカウントを追加し直してください。

よくある質問

スマホなしで Docker Hub の 2FA を使えますか?
はい。Docker は TOTP に対応した認証アプリならどれでも使えるとしており、確認するのは 6 桁のコードだけです。Authenticator 拡張機能は Docker のページから QR コードを直接読み取り、Chrome でコードを生成します。スマホは不要です。
2FA をオンにした状態で docker login を使うには?
ユーザー名を付けずに docker login を実行すると、ブラウザ経由でサインインでき、そこでパスワードと拡張機能のコードを入力します。docker login -u、スクリプト、CI では Docker はパスワードを受け付けないので、パーソナルアクセストークンを作成し、パスワードの入力欄に入力してください。
認証アプリを使えなくなったら?
ユーザー名とパスワードでサインインし、Two-Factor Authentication のページで「I’ve lost my authentication device」(認証デバイスを紛失した)を選んで、リカバリーコードを入力します。これでサインインでき、2FA はオフになります。すぐにオンに戻してください。リカバリーコードがない場合は、Docker の Contact Support フォームから 2FA でロックされた旨を問い合わせてください。
Docker の 2FA を別の認証アプリに移すには?
Docker では認証アプリは 1 アカウントに 1 つだけなので、2 つ目は追加できません。新しいアプリやデバイスに移すには、Account settings →「2FA」で 2FA をオフにしてからオンに戻し、使いたいアプリで新しい QR コードをスキャンします。

ログイン画面から、ワンクリックでコードを

Authenticator は 2FA コードをブラウザ内、お使いのデバイスだけに保存します。利用無料・オープンソースで、アカウント登録もスマホも不要。ローカルバックアップと、任意で使えるパスワード保護も標準搭載です。

2FA 認証システム を Chrome に追加(無料)