GitHubのプライベートリポジトリをローカルにクローンする時に、ユーザー認証で失敗したのでその解決方法をメモしておく。たぶんパスワードを正しく入力できていないだけだと思う。しかし、システムに認証の手続きを任せられるようになったので、今後同じことで詰まらなくて済むようになった、はず。そう思いたい。
記事を書いてたらユーザー名の入力ミスに気づいた。穴があったら入りたい。
概要
環境は以下の通り。
- Distro: MX-23.5_x64 Libretto Jan 12 2025 base: Debian GNU/Linux 12
- git version 2.39.5
git clone 実行して失敗
この記事のコマンドはすべてログインユーザーで sudo
なしで実行した。
コマンド git clone
を実行した時の内容は下記の通りだった。URLはHTTPSを選択した。
$ git clone https://github.com/ユーザー名/リポジトリ名.git
Cloning into 'リポジトリ名'...
Username for 'https://github.com': ユーザー名を入力
Password for 'https://ユーザー名@github.com': パスワードを入力
remote: Support for password authentication was removed on August 13, 2021.
remote: Please see
https://docs.github.com/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls
for information on currently recommended modes of authentication.
fatal: Authentication failed for 'https://github.com/ユーザー名/リポジトリ名.git/'
ユーザー名とパスワードが一致しないからエラーになってると思われる。
大人しく提示されたURLを見てみる。
「HTTPSのURLでクローンする」の内容に、次のような内容がある。
Git Credential Managerのような認証補助を利用可能です。
よりセキュアな認証方法を選択したため、パスワードベースの認証は削除されました。
つまり、パスワードを使わずにソフトを使ってねってことかな。
解決方法
というわけで、Git Credential Managerをインストールして使えるようにする。
インストールの手順は下記のページに書いてあった。
Git Credential Managerインストール手順
Linuxの項目を見ると、追加の設定が必要と書いてあるが後で読むことにしてひとまずパッケージのダウンロードとインストールを行う。
Mx Linuxにインストールしたいので、 .deb
のパッケージを選択する。パッケージの場所へはインストール手順のリンクから飛べる。
コマンドでインストールする手順が記載されているが、MX LinuxにはDeb Installerというツールがあるのでクリックするだけでインストールできた。
下記のコマンドだけは実行した。
git-credential-manager configure
そして先程スルーした追加設定を行う。各OS向けの設定が記載されているので、Linux向けの設定を選ぶ。一通り内容を確認してみて、私はGitのビルトインの認証情報キャッシュの設定を行うことにした。理由はビルトインなので間違いなく機能してくれるだろうということと、一番簡単そうだったから。
設定は何をするかというと、下記のコマンドを実行するだけ。
export GCM_CREDENTIAL_STORE=cache
# or どちらかだけでよい ドキュメントからそのまま拝借した
git config --global credential.credentialStore cache
これけで、 git clone
の際にユーザー名とパスワードの入力ではなく、GUIでの自身の設定した方法での認証を求められるようになる。
キャッシュ保持の設定についての記載もあったが、都度認証すればいいやと思い私は無視した。
結果
git clone
の実行結果はこちら。合間の認証手順は省略しました。
$ git clone https://github.com/ユーザー名/リポジトリ名.git
Cloning into 'リポジトリ名'...
remote: Enumerating objects: 190, done.
remote: Counting objects: 100% (190/190), done.
remote: Compressing objects: 100% (140/140), done.
remote: Total 190 (delta 20), reused 186 (delta 19), pack-reused 0 (from 0)
Receiving objects: 100% (190/190), 289.27 KiB | 5.67 MiB/s, done.
Resolving deltas: 100% (20/20), done.
という訳で、無事にGitの認証を突破してリポジトリをクローンできました。888888
ちなみにごく短いコードを一時的に保管していただけなのでコピペでも良かった、ということは内緒です。
参考
参考にしたドキュメントは記事中でリンクを貼ったので、いつもお世話になっているMarkdownのチートシートを載せます。この記事がキレイに見えるのはすべてこのチートシートのおかげです。ありがとうございます。
Markdown記法 チートシート by Qiita