WindowsのVisual Studio Code 1.101.0でdecontainerを起動し、devcontainer内部からgit fetchを行ったところエラーが発生しました。
ログを見ると、環境変数「GIT_ASKPASS」に設定されている「askpass-main.js」で「Missing or invalid credentials.」エラーが発生するという状況です。
その辺りの状況から、SSHの秘密鍵が正常に読めてないのであろうことは予想できたのですが、以前はホスト機(Windows)のSSH-Agentを使えていたので、何か仕様が変わったのか?と調査しました。
GitHubにissueが登録済みの問題でしたので、ここまでたどり着けば解決します。
https://github.com/microsoft/vscode-remote-release/issues/11043
ただ、私はここへたどり着くのにえらい時間がかかったので、同じ目に遭った人がたどり着く手段を増やそうというのがこの記事の主旨であります。
原因としては、Visual Studio Code version 1.101.0で、内部で使用しているNodeを20から22にした影響により、SSH-Agentの転送が正常に行われないということだそうです。
Workaroundとしてはホスト機(Windows)で、システムの環境変数SSH_AUTH_SOCKに\.\pipe\openssh-ssh-agentを設定となります。
これを設定することで、devcontainer内でホスト機のSSH-Agentを参照することが出来るようになります。(GitがSSHを使うときも参照されるのでエラーが解消される)