GitHubの利用頻度が上がってきたのもあって、2段階認証かけました。
brute forceアタックなどに対する最低限のセキュリティはGitHub側でやってくれているとは思いますが、どこからパスワードが漏れるかわからないのですからねw
設定
設定自体は5分もあれば終了します。
設定画面へ
まずはWebからGitHubにログインをし、「Setting」から設定画面へ遷移。
左側のメニューにある「Security」をクリック。
「Enable two-factor authentication」ボタンをクリック。
SMS認証
Googleが提供する2段階認証アプリで行うか、SMS認証にするか聞いてきます。 ボタンの感じからアプリがおすすめのようですが、今回はSMS認証にします。スマホが壊れてもSMS認証であればSIMさえ何とかなれば救済できるので個人的にはSMSを選択することが多いです。
まぁ…SMSは送信側が通信料を負担することになりますからね。日本の場合1通あたり10円前後かかりますので10万人が利用するとそれだけで100万円のコスト増。GitHubのお財布が心配な場合はアプリを使った方が良いかもしれません。
万が一、何かあった際のリカバリーコードが表示されるのでダウンロードや印刷を行い金庫などに入れておきます。
日本を選択し電話番号を入力。海外から飛んでくると思われるので、頭の0
は削除するのをお忘れなく。
電話番号入力欄の下にある「sent authentication code」ボタンをクリック。しばらくすると実際にSMSがやってきます。
きた(・∀・) この番号を先ほどクリックした「sent authentication code」ボタンの下にある入力欄に入れ、「Enable」ボタンをクリックします。
以下のような画面が表示されれば設定完了です。
実際にログインしてみる
設定したら必ず検証を。 いったんログアウトした後、ログイン画面へ。ここまでは同じですね。
ID/PW入力画面のあとに2段階認証のコードを入れる画面が現れました。
割とすぐに認証コードが送られて来ますので、こちらを入力すれば完了です。この場合は275502
ですね。
これでうっかりパスワードを漏らしてしまっても、最悪2段階認証でせき止めることができるようになりました。良かった、良かった。
HTTPSでつないでいる場合
HTTPS(SSL)でgit clone
などしている場合、git push
時などに正しいIDとパスワードを入力してもエラーで弾かれてしまいます。
$ git push Username for 'https://github.com': katsube Password for 'https://katsube@github.com': (正しいパスワードを入力) remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/katsube/neec2018B.wiki.git/' $ git remote show origin * remote origin Fetch URL: https://github.com/katsube/neec2018B.wiki.git Push URL: https://github.com/katsube/neec2018B.wiki.git
GitHubのWikiをcloneしようとするとHTTPSになってしまうので困った困ったというわけで、これを回避するためには、GitHubで「Personal access tokens」を発行しパスワードに使用する必要があります。
Personal access tokensの発行
2段階認証を設定したときと同様にWebからGitHubにログインをし、「Setting」から設定画面へ遷移。
左側メニューの一番下にある「Developer settings」をクリック
「Generate new token」をクリック
「Token description」にわかりやすい名前を入力し、必要なパーミションにチェックします。リポジトリに対して操作ができれば良いだけならrepo
の横にチェック。最後に一番下にある「Generate token」ボタンをクリック
Tokenが発行されるのでこれをコピーしておきます。
Personal access tokensでログイン
では早速、先ほど発行したTokenでログインします。 ユーザーネームは通常通り入力し、パスワードの入力時に「Personal access token」を入れます。
$ git push Username for 'https://github.com': katsube Password for 'https://katsube@github.com': (先ほど発行したTokenを入力) Counting objects: 11, done. Delta compression using up to 4 threads. Compressing objects: 100% (11/11), done. Writing objects: 100% (11/11), 223.59 KiB | 13.97 MiB/s, done. Total 11 (delta 3), reused 0 (delta 0) remote: Resolving deltas: 100% (3/3), completed with 3 local objects. To https://github.com/katsube/neec2018B.wiki.git 406df41..ea3528b master -> master
今度は通った!当初は毎回2段階認証をOFFにして、再設定しないといけないの?と絶望していましたが、回避方法がわかってよかったw
認証結果をキャッシュする
毎回ユーザー名とパスワードを入力するのはさすがに気が狂いそうになるので、以下のページの「認証情報をキャッシュする」の項目を参照に設定を行います。 blog.katsubemakito.net
書籍
売り上げランキング: 173