リポジトリのクローンを作成すると、"Git failed with a fatal error. Authentication failed for (URL)" エラーが発生する - Visual Studio

リポジトリのクローンを作成すると、"Git failed with a fatal error. Authentication failed for (URL)" エラーが発生する現象について紹介します。

概要

Visual StudioでリポジトリのURLを指定してリポジトリのクローンを作成すると、 "Git failed with a fatal error. Authentication failed for (URL)"のエラーが発生します。 現象の確認や、対処法を紹介します。

現象の確認

Visual Studioで[ファイル]メニューの[リポジトリのクローン]をクリックするか、[Git]メニューの[リポジトリのクローン]の項目をクリックします。
下図の[リポジトリのクローン]ダイアログが表示されます。 [リポジトリの場所]にリポジトリのURLを入力します。[パス]にはローカルリポジトリの作成場所を設定します。設定ができたら、ウィンドウ右下の [クローン]ボタンをクリックします。


リポジトリの複製は開始されず下図のエラーダイアログが表示されます。



エラーメッセージ
"Git failed with a fatal error. Authentication failed for (GitリポジトリのURL)

Visual StudioのGitの出力ウィンドウには以下のエラーメッセージが表示されます。

エラーメッセージ
"リモート リポジトリの複製を作成中にエラーが発生しました: Git failed with a fatal error.
Authentication failed for (GitリポジトリのURL)

原因

原因はいくつかありますが、次のものが考えられます。

リモートリポジトリがAuzre DevOps Serverの場合

リモートリポジトリがAuzre DevOps Serverの場合には、Azure DevOps Serverのバージョンアップにより、URLを利用した場合の、 ID、パスワードを利用したベーシック認証は利用できなくなりました。認証には、Windows認証を利用する必要がありますが、 Visual Studioでリポジトリを複製する際に、Windows認証がうまく動作せずにエラーが発生している可能性があります。

リモートリポジトリがGitHubの場合

リモートリポジトリがGitHubの場合、httpsのURLを利用した場合でもIDとパスワードの認証による リポジトリ操作ができない設定になっている可能性があります。 「個人アクセストークン」を利用して、アクセスする方法を試して問題が解消されるかを確認します。

対処法 (Azure DevOps ServerでGitコマンドを利用する場合)

Gitコマンドを利用する場合には、個人用アクセストークンを使用する必要があります。
Azure DevOps Serverで個人用アクセストークンを作成する手順は、こちらの記事を参照してください。

対処法 (Azure DevOps ServerでVisual Studioを利用する場合: 資格情報マネージャーを設定する)

Visual Studioを利用する場合は、リポジトリのURLからクローンを作成する際にWindows認証が動作するよう設定します。
スタートメニューで"資格情報"で検索し、[資格情報マネージャー]を起動します。


[資格情報マネージャー]のウィンドウが表示されます。


Windows認証が動作する設定にするため、[Windows 資格情報]のセクションの[Windows 資格情報の追加]をクリックします。


Windows資格情報の追加画面が表示されます。
[インターネットまたはネットワークのアドレス]の欄にホスト名を入力します。Azure DevOps Server のリポジトリのURLが次の場合
https://devops.ipentec.com/DefaultCollection/TestProject/_git/TestProject/
[インターネットまたはネットワークのアドレス]の欄には以下を入力します。
devops.ipentec.com

ユーザー名にはDevOps Serverへのログインユーザー名を入力します。Active Directoryで管理されていない場合は(DevOpsのサーバー名)\(ユーザー名)の書式で入力します。サーバー名がdevops、ユーザー名がadelieの場合は次の通りです。
devops\adelie
パスワードは、設定したユーザー名のパスワードを入力します。
設定ができたら、画面右下の[OK]ボタンをクリックします。


資格情報マネージャーの画面に戻ります。[Windows 資格情報]のセクションの資格情報の一覧に先ほど作成した資格情報が追加されていることが確認できます。



Windows 資格情報を設定したのち、Visual Studioを起動し、リポジトリのクローンを実行すると、エラーが発生せずにリポジトリをクローンできます。



対処法 (Azure DevOps ServerでVisual Studioを利用する場合: 資格情報マネージャーを設定しない場合)

先の手順で紹介した、資格情報マネージャーを設定する方法が確実ですが、資格情報マネージャーを設定しない方法もあります。
補足
このセクションで紹介している方法では、ログインダイアログが表示されずうまく動作しない場合があります。 動作しない場合は、先に紹介した資格情報マネージャーに設定を追加する方法を利用するか、資格情報マネージャーから Azure DevOps Serverに関するすべての資格情報を削除してから、このセクションの手順を実施すると動作する場合があります。

Azure DevOpsのポータルサイトにアクセスし、左側の[Repos]の項目をクリックし、リポジトリの画面を表示します。 ページの右上の[クローン]ボタンをクリックします。


[リポジトリの複製]ダイアログがスライドイン表示されます。


[IDE]のセクションのドロップダウンリストを開きます。リストから"Visual Studio"の項目を選択します。


新しいタブが開き、「Microsoft Visual Studio Web Protocol Handler Selector を開こうとしています。」 のダイアログが表示されます。ダイアログの[開く]ボタンをクリックします。


Visual Studioが起動し、認証ダイアログが表示されます。


Azure AD に参加しているマシンの場合は、PINコードによる、Azure ADの認証ダイアログが表示されます。


Azure ADではないアカウントで、Azure DevOps Serverにログインする場合は、ダイアログ下部の[その他]をクリックします。 ダイアログが下に広がり、他のアカウントでのログインオプションが表示されます。[別のアカウントを使用する]の項目をクリックします。


メールアドレスとパスワードでの認証画面に変わります。
メールアドレスの欄に次の形式でIDを入力します。
サーバー名\アカウント名

入力したアカウントのパスワードを[パスワード]のテキストボックスに入力します。入力ができたら[OK]ボタンをクリックします。


Azure DevOps Serverからのクローン作成ダイアログが表示されます。ダイアログの[クローン]ボタンをクリックします。



クローンが作成されます。


著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
掲載日: 2022-07-20
iPentec all rights reserverd.