やしむすがもがいてるブログ

変化の早いエンジニア業界に置いてかれまいともがいてる人のブログです。モバイルのweb,front,native周りを書いていきます

Githubの2段階認証でログイン出来ない事態にならないための注意点

皆さんGithubで2段階認証を行っていますか?使っていないという方は、自分のコードを守るために、今すぐ設定するべきです。

また、仕事でGithubを使っている人なら、不正ログイン等があった場合、瑕疵責任を問われる可能性もありますので、必須の設定といえます。

しかし、2段階認証は強力な反面、アカウントをロックしてログイン出来なくなってしまうと、githubは一切救出してくれないので、そうならないための設定をご紹介します。

2段階認証(two-factor authentication)を設定しよう

2段階認証とは

パスワード入力の他に、認証情報を入力することで、セキュリティを高める認証方法です。 githubではアプリ認証と、SMS認証をサポートしているようです。 今回はアプリ認証で2段階認証を設定します。

Authenticatorアプリをインストール

認証を行うためのアプリは何でもよいのですが、こだわりが無ければGoogle謹製をつかうのが良さそうです。

2段階認証の設定を有効にする

Personal settings > Security > Set up two-factor authenticationを選択

f:id:yashims85:20151105003305p:plain

アプリを使って2段階認証を行う

f:id:yashims85:20151105003309p:plain

アプリを起動して、認証設定を行う

  1. 認証アプリ内のQRコードリーダーを利用して、左のQRを読み込みます。
  2. 右のような画面が表示されるので、表示されている数字をタイマーの期限以内に入力フォームに入力します

f:id:yashims85:20151105003312p:plain

recovery codeをダウンロード

携帯を紛失したり初期化した場合に必要になります。プライベートなクラウド上においておくと良いでしょう。 2段階認証を有効にして、携帯とリカバリコードをなくし、FallbackSMSも登録していない場合、githubは救済してくれないので、紛失しないよう超ご注意ください。

f:id:yashims85:20151105003314p:plain

Fallback SMS numberを登録しておく

Fallback SMS number を登録しておくと、携帯を紛失しても、SMSでリカバリすることができます。

f:id:yashims85:20151105003318p:plain

国番号とSMSが受け取れる電話番号を入力してSMSが来るのを待ちます。

000000 is your GitHub authentication code.

というSMSが来たら、フォームに番号を入力すれば完了です。

設定されていますね。

f:id:yashims85:20151105010948p:plain

設定はこれで完了です

f:id:yashims85:20151105012238p:plain

実際にログインしてみる

試す場合は、別ブラウザか、シークレットウィンドウでやってみましょう。 何かミスってログインできないとかなったら切ないですからね。。

携帯をなくした/機種変更した等で、ログイン出来なくなってしまった場合

もう一度アプリをインストールして、再度認証設定をしましょう。 その際githubへログインするには、リカバリコードを使用するか、SMSで認証キーを受け取ってログインします。

f:id:yashims85:20151105012301p:plain

  • Send the code to your backup phone numberはSMSを使ってログインします
    • ここをクリックするとSMSが即時送られ、画面が遷移します。
    • 送られてきたSMS内のコードを入力することでログインできます。
    • backup SMS numberを登録していないと表示されません
  • Enter a two-factor recovery codeはリカバリコードを使ってログインします。
    • リカバリコードの中からどれか1つを入力しましょう

FallbackSMSを登録せず、携帯とリカバリコードを同時に無くすと。。。

死亡。githubに問い合わせても、セキュリティ上の観点から絶対に救出してくれません*1。 逆を言えば、FallbackSMSが設定されているか、リカバリコードがあれば復旧できるので、この2つは必ずやっておきましょう。

*1:sshkeyでverifyできれば救出してくれるケースもあるようです。その場合は他の方の記事をご参照下さい。