2023年7月15日土曜日

VS Codeでgit push時に発生する「Missing or invalid credentials.」のエラー解消方法

本記事では、VS Codeでgit push時に発生する「Missing or invalid credentials.」のエラーの解消方法を記載する。

環境

  • VS Code : 1.76.1
  • Remote - SSH : v0.102.0
  • 接続先Linux OS : AlmaLinux 8.5

事象

VS CodeでRemote - SSHの拡張機能を用いてLinux OSにSSH接続した状態でgit pushすると以下のような「Missing or invalid credentials.」のエラーで失敗することがある。

# git push
Missing or invalid credentials.
Error: connect ECONNREFUSED /run/user/0/vscode-git-d76c335e68.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '/run/user/0/vscode-git-d76c335e68.sock'
}
Missing or invalid credentials.
Error: connect ECONNREFUSED /run/user/0/vscode-git-d76c335e68.sock
    at PipeConnectWrap.afterConnect [as oncomplete] (node:net:1157:16) {
  errno: -111,
  code: 'ECONNREFUSED',
  syscall: 'connect',
  address: '/run/user/0/vscode-git-d76c335e68.sock'
}
remote: HTTP Basic: Access denied. The provided password or token is incorrect or your account has 2FA enabled and you must use a personal access token instead of a password. See http://t1026gitl.test.local/help/topics/git/troubleshooting_git#error-on-git-fetch-http-basic-access-denied
fatal: Authentication failed for 'http://t1026gitl.test.local/ansible/test.git/'

解消方法

本事象は、環境変数が悪さをするようだ。

exportコマンドで環境変数を確認すると、GIT_ASKPASSという環境変数において何やらVS Codeのシェルが指定されていることがわかる。おそらく、このシェルを介してVS Codeからgit実行時のユーザー名・パスワード情報の入力をできるようにしていると想定されるが、これがうまく動作しないことが原因となる。

# export | grep GIT_ASKPASS
declare -x GIT_ASKPASS="/root/.vscode-server/bin/5e80xxxxfcb6ba4c2d23712967dxxxx089da575b/extensions/git/dist/askpass.sh"

というわけで、環境変数GIT_ASKPASSunsetコマンドで解除する。

# unset GIT_ASKPASS

git pushするとユーザー名とパスワードを求められるので、正しい情報を入力すれば、git pushに成功するようになる。

# git push
Username for 'http://t1026gitl.test.local': tadmin
Password for 'http://tadmin@t1026gitl.test.local': 
Enumerating objects: 37, done.
Counting objects: 100% (37/37), done.
Delta compression using up to 2 threads
Compressing objects: 100% (22/22), done.
Writing objects: 100% (22/22), 2.07 KiB | 2.07 MiB/s, done.
Total 22 (delta 18), reused 0 (delta 0), pack-reused 0
To http://t1026gitl.test.local/ansible/test.git
   f9860d8..60d4beb  main -> main

以上で、VS Codeでgit push時に発生する「Missing or invalid credentials.」のエラーの解消方法の手順は完了となる。

0 件のコメント:

コメントを投稿

人気の投稿