こんにちは、現役エンジニアの inno_tech です。
Microsoft の Azure DevOpsからhttpsプロトコルでgit cloneをする際に認証系でエラーが発生しました。
どうやらhttps経由ではパスワード認証が廃止されたようです。
本記事は ubuntu20.04LTSの環境で検証しています。
Azure DevOpsって?
Microsoft社のサービスの一種で、Azure ReposというサービスでGitHubのようなリポジトリサービスを提供しています。
MicrosoftによるGitHubの買収によって、今現在はGitHub無料プランでPrivateリポジトリを使用できますが、以前は有料でした。
一方、Azure DevOpsでは無料でPrivateリポジトリが利用可能だったため、私の個人開発ではAzure DevOpsを使用していました。
現象 | Azure DevOpsでcloneが失敗
新しいUbuntuからgit cloneしたところ、エラーfatal: Authentication failed
となり、cloneが失敗しました。
別のWindowsPCからはhttpsでcloneに成功しています…。
git clone https://[organization名].visualstudio.com/[Project名]/_git/[リポジトリ名]
# Cloning into '[リポジトリ名]'...
# Username for 'https://xxxxxx.visualstudio.com': [ユーザー名を入力]
# Password for 'https://xxxxxxx@xxxxxxx.visualstudio.com': [パスワードを入力]
# fatal: Authentication failed for 'https://xxxxx.visualstudio.com/[Project名]/_git/[リポジトリ名]/'
解決方法 | Personal Access Tokenを発行する
まず、Azure DevOpsのリポジトリにログインし、Cloneのボタンをクリックします。
CloneのURLが表示されます。
このアドレスを使ってgit clone
しても上記のような認証エラーが発生します。
すぐ下に「Generate Git Credentials」というボタンがあるのでこれをクリックします。
ユーザー名とパスワードが表示されます。
発行されたユーザー名とパスワードを使って、再度cloneを実行します。
するとcloneが成功するはずです。
git clone https://[organization名].visualstudio.com/[Project名]/_git/[リポジトリ名]
# Cloning into '[リポジトリ名]'...
# Username for 'https://xxxxxx.visualstudio.com': [ユーザー名を入力]
# Password for 'https://xxxxxxx@xxxxxxx.visualstudio.com': [発行されたパスワードを入力]
# Cloneに成功!
ここで発行されたユーザー名とパスワードの組み合わせが、Personal Access Token(PAT)というものです。
User settingを確認すると、PATが発行されていることがわかります。
有効期限付きの一時パスワードを発行することで、セキュリティを高めているイメージです。
GitHubでも2021/08/13以降はパスワード認証が廃止されているので、こちらのサービスでも同等な仕様になったのだと思います。
解決方法2 | SSH接続に変更する
PATの生成が面倒だという方は、公開鍵・秘密鍵を用いたSSH接続方式に変更する、という手もあります。
詳しくはこちらの記事でまとめているのでご確認ください。
まとめ
- httpsアクセスする場合は、PAT(Personal Access Token)の発行が必要
- SSH接続であればPATの発行なしに接続が可能
参考になったでしょうか。
また、プログラミングスキルを向上させたい, 仲間が欲しいという人は、プログラミングスクールを検討してみるのはいかがでしょうか。
少しでも興味がある方は、まずは無料のオリエンテーションを受講し、自分に合うかどうかを試してみるのもありだと思います。
まずは一歩行動して、将来の自分に楽をさせてあげましょう。
ほかにも役立つ情報が他のページにもあるかもしれません。
ご覧になるかはあなた次第です!
この記事がイイねと思ったら、Twitterフォロー か にほんブログ村のどちらかしてくれたら嬉しいよ!
コメント / ご要望