GitHubで2段階認証の設定後にpushできない原因と対処法

パスワードは合ってるはずなのに、なんでpushできないんだろ…?

GitHubでローカルリポジトリからリモートリポジトリにpushする時に失敗することがあります。

その失敗する原因で最も多いのが、GitHubで直接ファイルの編集や追加・削除などの作業をして、ローカルリポジトリ(パソコン側のリポジトリ)とリモートリポジトリ(GitHub側のリポジトリ)の状態が変わってしまうことだと思いますが、他にもいくつかpushが失敗する原因があります。

例えば、GitHubで2段階認証を設定すると、正しいusername(ユーザー名)とpassword(パスワード)を入力してもpushが失敗します。

しかも、僕の記憶が正しければ、「どっちかが違うよ〜」というエラーメッセージしか表示されないんですよね。どっちも合ってるのに。

では、どうすればいいのかと言うと、実はこのパスワードに入力しなければいけないのは「アクセストークン」というGitHubのサイトで取得する文字列なんです。

ということで今回はこのアクセストークンの取得から入力までの一連の流れを紹介したいと思います。

【参考】 Creating a personal access token for the command line

アクセストークンを取得する

アクセストークンを取得する手順は以下の通りです。

PortableText [components.type] is missing "image"

GitHubのアカウントメニュー「Settings」をクリック。

PortableText [components.type] is missing "image"

「Developer settings」をクリック。

PortableText [components.type] is missing "image"

「Generate new token」をクリック。

PortableText [components.type] is missing "image"

「Token description」の欄にトークンの説明を入力し、「repo」にチェック。

PortableText [components.type] is missing "image"

「Generate token」をクリック。

PortableText [components.type] is missing "image"

文字列が表示されるので、それをコピーします。

パスワードの欄にアクセストークンを入力する

アクセストークンを生成してコピーしたら、後はそれをターミナルに貼り付けるだけです。

ターミナルでアクセストークンを入力

※パスワードは入力しても貼り付けても表面上は変化しませんが、ちゃんと入力されています。

「httpsのURLの場合は2段階認証をオンにするとpushできない」みたいな情報もけっこうありますが問題なくpushできるのでご安心ください。(昔の話ですかね?)

No comments yet