お久しぶりです。
ブログを毎週1本はあげようと思っていたのに、この頃全然できていない私ですが、実業頑張っていたので自分で自分を勝手に許していますw
これまで門外漢だったrails/ruby系を触りだし、Rails6系とmysql8系をdockerで動かしたり、セミナーセッションに登壇したり(電子帳簿保存法やら2025年の崖やらがテーマ)、割と多方面で新しいことに手を出していたので、off pj関係の進みが悪い今日この頃ですw そんなこんなでoff pjの位置付けのadmin-itブログも更新が止まっていました。。。
さて、久しぶりに何書こうかなぁと思ってdockerにしようか、python系の何かにしようかと思ってはいたのですが、ちょっとgithub知り合いからヘルプリクエストされた質問の回答をログっていこうかと思います。
テーマは、githubに2FA入れたらgit commandが効かなくなった、話です。話としては結構昔からあるやつで、なんで今更あいつは2FAを入れたんだろう。。という疑問はおいておいて。
ちゃんと書いたから読めよ。。
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として渡してあげればアクセス可能になります。
対応方法2:sshを利用してアクセスする
sshでのアクセスは2FA設定後も変わらず可能です。こちらで継続するという手が一番早いかと思います。
sshでの接続は簡単には以下のステップで可能です。
①local terminalでkeygenerateする
ssh-keygene -t rsa -b 4096 -C "mail_adress"
②rsa_pubをコピーする
pbcopy ~/.ssh/id_rsa.pub
③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を渡しましょう、という内容でした。