Lesstep
Azure DevOps Services・SSH の git・2026年10月28日に確認

Azure DevOps と SSH:post-quantum の警告、「Public key authentication failed」、RSA だけの鍵

2026年に Azure DevOps Services を SSH の Git で使う人が出会う3つのことです。OpenSSH 10.1 からはコマンドのたびに出る警告、理由を言わずに断られる鍵、そもそも受け付けられない Ed25519 の鍵。どのアカウントにも登録していない使い捨ての鍵に ssh.dev.azure.com が2026年10月28日に返した答えと、Microsoft の Use SSH key authentication(2026年6月17日更新)の説明です。

「WARNING: connection is not using a post-quantum key exchange algorithm」

** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to "store now, decrypt later" attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html

(「この接続は post-quantum の鍵交換の方式を使っていない。この通信は『今ためて後で解く』攻撃に弱いかもしれない。サーバーを新しくする必要があるかもしれない」)サーバーが post-quantum の鍵交換を出さないとき、OpenSSH 10.1 以降はこう出します(OpenSSH の説明)。Git for Windows は 2025年10月の版 2.51.1 から OpenSSH 10.2 以降を入れているので、Windows では SSH の git fetch・pull・push のたびにこの警告が出ます。

2026年10月28日、ssh.dev.azure.com との鍵交換は diffie-hellman-group-exchange-sha256 に決まりました。比べると、bitbucket.org は post-quantum の mlkem768x25519-sha256 で、警告は出ません。2026年5月の Microsoft Q&A の問いでは、Microsoft のモデレーターが、Azure DevOps の SSH はまだ post-quantum の鍵交換に対応しておらず、予定も公表されていない、警告は無視してかまわない、と答えています。

警告で止まるものはなく、コマンドはそのまま続きます。Azure DevOps のときだけ黙らせるには(OpenSSH も対象を絞るよう勧めています)、~/.ssh/config(Windows では %UserProfile%\.ssh\config)に次を足します。

Host ssh.dev.azure.com vs-ssh.visualstudio.com
    IgnoreUnknown WarnWeakCrypto
    WarnWeakCrypto no-pq-kex

IgnoreUnknown の行は消さないでください。Windows 自身の OpenSSH(C:\Windows\System32\OpenSSH・版 9.5)も同じファイルを読み、この行が無いと Bad configuration option: warnweakcrypto(「知らない設定がある」)ですぐに止まります。この行があれば、私たちの試しでは両方の版がつながりました。Azure DevOps Server では、Host の行に自分のサーバーのホスト名を書きます。

「remote: Public key authentication failed.」

remote: Public key authentication failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

(「公開鍵での認証に失敗した。リモートのリポジトリを読めない」)10月28日、どのプロフィールにも無い RSA の鍵に、Azure DevOps は非公開のリポジトリでも公開のリポジトリでもこう答えました。SSH では、公開リポジトリでも Azure DevOps の知っている鍵が要ります。Microsoft の挙げる理由:

ssh -T git@ssh.dev.azure.com だけで確かめないでください。Azure DevOps の知らない RSA の鍵でも、使える鍵と同じ remote: Shell access is not supported.(「シェルは使えない」)が返りました。確かめるなら、そのリポジトリに git ls-remote を打ちます。

Ed25519 と ECDSA の鍵:「Permission denied (password,publickey)」

git@ssh.dev.azure.com: Permission denied (password,publickey).
fatal: Could not read from remote repository.

(「拒否された」)Azure DevOps が受け付けるのは RSA の鍵だけです。Microsoft のページは「SSH の認証には RSA の鍵に対応」と書き、ssh-keygen -t rsa -b 3072 で作っています。10月28日、Ed25519 の鍵は、Azure DevOps がリポジトリを見る前にこうして断られました。OpenSSH 9.5 からは、-t を付けない ssh-keygen は Ed25519 の鍵を作るので、作ったばかりの既定の鍵がよくある場合です。Azure DevOps 用に RSA の鍵を作り、上の Host の設定でそれを指します。

ssh-rsa の文

IntelliJ IDEA・Rider で Azure DevOps のプルリクを見るなら

Azure DevOps Pull Requests は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。組織・プロジェクト・リポジトリを、HTTPS のリモートと同じように SSH のリモート(git@ssh.dev.azure.com:v3/…)からも読みます。Azure DevOps の REST API とは、自分の個人用アクセス トークンか Azure CLI で HTTPS で話すので、SSH の鍵や設定には左右されません。受信箱は無料、投票・コメント・完了は Pro(月 US$1・30日間の無料試用つき)です。画面は日本語です。

JetBrains Marketplace で入れる

Azure DevOps は Microsoft Corporation の商標、IntelliJ IDEA と Rider は JetBrains s.r.o. の商標です。このページは Microsoft・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:HTTPS での「fatal: Authentication failed」 · Git Credential Manager 3.0 と Azure Repos · English