Win10 Linux サブシステムを実行すると、Github で「認証に失敗しました」というメッセージが表示され続けるのはなぜですか?

Win10 Linux サブシステムを実行すると、Github で「認証に失敗しました」というメッセージが表示され続けるのはなぜですか?

私は Windows 10 を実行しているマシンを使用しており、開発者モードが有効になっていて、Linux サブシステムがインストールされています。bash に切り替えると、git から簡単な clone コマンドを実行しようとします。

git clone https://github.com/PrivateRepo/my-private-repo.git

もちろん、ここでは URL を少し変更していますが、要点は伝わると思います。当初、そのコマンドから返された応答は次のとおりでした。

致命的: アクセスできません 'プライベートリポジトリ': サーバー証明書の検証に失敗しました。CA ファイル: /etc/ssl/certs/ca-certificates.crt CRL ファイル: なし

Stack Overflowの回答でそのことについて言及しているのをいくつか見ましたが、正直言って、ちゃんとしたそのエラーに対処する方法。そうは言っても、次のコマンドを実行してそれを完全に回避するという不適切な方法を知っています。

git config --global http.sslverify false

そして、それはうまく機能しているようです。すべての SSL 検証をオフにしているのはおそらく良くないことですが、これを機能させる必要があり、それがこの質問の本当の目的ではありません (私がその点に近づいています)。しかし、余談ですが、これを修正する適切な方法をご存知でしたら、ぜひ教えてください。

次に、コマンドを再実行しましたgit clone。今回はユーザー名とパスワードの入力を求められましたが、結局別の理由で失敗しました。結果は次のようになりました。

git clone https://github.com/PrivateRepo/my-private-repo.git
Cloning into 'my-private-repo'...
Username for 'https://github.com': myuser
Password for 'https://[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/PrivateRepo/my-private-repo.git'

しかし、私が入力したユーザー名とパスワードは正しかったと断言できます。Git for Windowsもインストールしており、そこで試したところすべてうまくいきました。唯一の注意点は、コマンドラインでパスワードの入力を求める代わりに、別のウィンドウを開いて認証情報を入力し、そこで6桁の2FAコードも求められたことです。その後は問題なくクローンされました。その際に、Githubに個人アクセストークンが作成されたことに気付きました。そこで、別の個人アクセストークンを作成し、bashで手動で使用してみました。基本的に、myuserユーザー名を入力する代わりに、次のように入力しました。myuser:mytoken

git clone https://github.com/PrivateRepo/my-private-repo.git
Cloning into 'my-private-repo'...
Username for 'https://github.com': myuser:a1abcdefab2a34567ab8901a2bc3d4567890a1b2
Password for 'https://myuser:[email protected]': 
remote: Invalid username or password.
fatal: Authentication failed for 'https://github.com/PrivateRepo/my-private-repo.git'

しかし、ご覧のとおり、まだ失敗しています。Windows 上の bash で git を動作させるにはどうすればよいですか?

答え1

現在実行中の Linux ディストリビューションでの実装を使用していますgitが、おそらく設定していません。git.exe代わりに以下を使用してみてください:

git.exe clone https://github.com/PrivateRepo/my-private-repo.git

alias次のコマンドを実行できます.bashrc:

alias git='git.exe'

答え2

ユーザー名のみを使用し、パスワードの代わりにアクセス トークンを使用します。トークンがパスワードを置き換えるため、パスワードは必要ありません。

関連情報