Azure DevOpsから単純なリポジトリを複製できません。 OS:Ubuntu 18.10
私はこれをします:
git clone https://myorganization.visualstudio.com/myproject/_git/myrepo/
Gitからこのメッセージを受け取り続けます:fatal: Authentication failed for 'https://myorganization.visualstudio.com/myproject/_git/myrepo/'
私は他の人の解決策を読んでいましたが、私のために働く人はいませんでした。私もこれを試しました:
許可:Basic Base64Encoded(uname:PAT)
承認:ベアラーPAT
これが機能しない理由の手がかりはありますか?
このようにPATを使用して成功しました。
git clone https://<domain>.visualstudio.com/<domain>/_git/<domain>
git clone https://<PAT>@<domain>.visualstudio.com/<domain>/_git/<domain>
PATで十分なので、ユーザー名もパスワードも必要です。
これは、Ubuntu 18.10に同梱されているcurl 7.61.0の既知のリグレッションです。回帰はcurl 7.61.1で修正されましたが、Ubuntu 18.10にはまだこの修正がありません。参照(および投票) https://bugs.launchpad.net/ubuntu/+source/curl/+bug/18052
私は同じ問題を抱えていて、HTTPSのみを使用して解決しました。
Dev.Azureが提供する「GUIショートカット」を使用するのではなく、ターミナルのみを使用する必要があることがわかりました。これらは、Windowsでは正常に動作するがUbuntuでは壊れているgit-credential-managerを対象としています。
どうやら、dev.Azure gitリポジトリには、Microsoftアカウントの資格情報ではなく、異なる資格情報(セットアップする必要があります)があります。
Microsoftアカウントのユーザー名が[email protected]で、パスワードがJd1986であるとします
このクレデンシャルは、必要に応じて、gitクローンを作成しようとすると機能します[〜#〜] not [〜#〜]プロジェクトのgit資格情報を生成して使用します。
端末に移動し、git cloneのHTTP URLを使用して、指定された資格情報を入力します。これは私のために働いた。
トークンをBase64でエンコードし、HTTP Authorizationヘッダーとして追加する必要があります。これはOpenSSLで実行できます。
PAT="enter-your-pat-here"
REPO_URL="https://[email protected]/myorg/myproject/_git/myrepo"
AUTH=$(echo -n ":$PAT" | openssl base64 | tr -d '\n')
git -c http.$REPO_URL.extraHeader="Authorization: Basic $AUTH" clone $REPO_URL
echo -n "..." | ... | tr -d '\n'
は、通常ユーザー入力を必要とするコマンドへの入力として文字列を送信する一般的なLinuxのトリックです(openssl base64
と書くだけでわかります)。
echo -n ":$PAT"
の先頭の「:」に注意してください。これは、「user:token」の通常の形式では「user」が欠落しているためです。
各gitコマンドで構成オプションの再入力を回避するには、ローカルまたはグローバルgit構成に認証ヘッダーを追加できます。
git config --global http.$REPO_URL.extraHeader "Authorization: Basic $AUTH"
変更を表示するには:
git config --global --edit