Githubに2FA(2要素認証)を入れたらcommand lineからアクセスできなくなった人へ

github 雑記
この記事は約4分で読めます。

お久しぶりです。

ブログを毎週1本はあげようと思っていたのに、この頃全然できていない私ですが、実業頑張っていたので自分で自分を勝手に許していますw

これまで門外漢だったrails/ruby系を触りだし、Rails6系とmysql8系をdockerで動かしたり、セミナーセッションに登壇したり(電子帳簿保存法やら2025年の崖やらがテーマ)、割と多方面で新しいことに手を出していたので、off pj関係の進みが悪い今日この頃ですw そんなこんなでoff pjの位置付けのadmin-itブログも更新が止まっていました。。。

さて、久しぶりに何書こうかなぁと思ってdockerにしようか、python系の何かにしようかと思ってはいたのですが、ちょっとgithub知り合いからヘルプリクエストされた質問の回答をログっていこうかと思います。

テーマは、githubに2FA入れたらgit commandが効かなくなった、話です。話としては結構昔からあるやつで、なんで今更あいつは2FAを入れたんだろう。。という疑問はおいておいて。

ちゃんと書いたから読めよ。。

Advertisements

Githubに2FAを入れるとcommand lineからアクセスできない?

コマンドラインからアクセスできない、というのは誤解で、実際はHTTPSでのアクセスがパスワード認証ではでできないというだけです。

それでは、どういう対応方法があるか見ていきます。

対応方法1:personal access tokenを利用してアクセスする

2FAを通すまでは、githubアカウントのuser_nameとpasswordを利用していましたが、このpasswordの部分をpersonal access tokenに切り替えることにより、httpsでの接続が可能です。

2FAに切り替えた後でも、コマンドラインではpasswordを表示的には求められますが、ここを個人アクセストークンに切り替えて行く必要があります。

personal access tokenの作り方

①githubのマインページから、Developer settingsを選択します。

②developer settings ページで、personal access tokenのメニューをクリック

③generate new tokenをクリック

④認証ページへ遷移するのでパスワード(通常のpassword)を入力

⑤tokenの名前とscope(tokenの利用できる権限)を設定してGenerate tokenをクリック

⑥トークンが表示されるで保存しておく

ここで表示されたトークンをコマンドラインからhttpsでアクセスする際に、passwordとして渡してあげればアクセス可能になります。

アクセストークンは機密性の高い情報ですので、このようにweb上などに公開することはやめてください。今回は事例として上げましたが、作成後すぐ削除しております。

対応方法2:sshを利用してアクセスする

sshでのアクセスは2FA設定後も変わらず可能です。こちらで継続するという手が一番早いかと思います。

sshでの接続は簡単には以下のステップで可能です。

①local terminalでkeygenerateする

ssh-keygene -t rsa -b 4096 -C "mail_adress"

②rsa_pubをコピーする

pbcopy ~/.ssh/id_rsa.pub

コピーできない場合は、cdで/.sshフォルダに行ってもらい、catなどで表示してコピーしてください。

なお、id_rsa.pubが公開鍵、id_rsaが秘密鍵になりますので、間違っても秘密鍵は公開しないように!!

③githubで, setting -> SSH and GPG keys -> [New SSH key] or [Add SSH key] で遷移して、keyエリアにpublic keyの値を貼り付ける

まとめ

さて、githubで2FAを設定した後に、アクセスできなかった場合の対応方法を紹介しました。

日頃からsshで接続されている方には影響ない話ではありますが、httpsで接続している人はpersonal access tokenを作成して、passwordと表示されてもtokenを渡しましょう、という内容でした。

コメント