GIT错误:致命错误:无法访问'https://dev.azure.com/****/':克隆时接收到失败连接重置。

5

使用VSCODE、GITExtensions、GIT BASH从Azure Devops克隆存储库、推送、获取和拉取代码,大约80%的时间会出现“致命错误无法访问”和“连接被重置”的错误。有时它可以正常工作,而在不断尝试“git push”命令时,它只有20次中的1次成功,但是这是随机的。

我需要帮助解决“连接被重置”的问题,因为我无法为我的客户工作。

有关更多信息,请参见:https://github.com/git-ecosystem/git-credential-manager/issues/1150 我已经在这里解释了信息

附加日志(已删除):

Diagnose log at 2023-03-14T09:30:54Z

AppPath: C:\Program Files\Git\mingw64\bin\git-credential-manager-core.exe
InstallDir: C:\Program Files\Git\mingw64\bin\
Version: 2.0.886+ea93cb5158

------------
Diagnostic: Environment
Skipped: False
Success: True
Exception: None
Log:
OSType: Windows
OSVersion: 10.0 (build 22621)
Reading environment variables... OK
 Variables:
HOMEPATH=\Users\eerae
DriverData=C:\Windows\System32\Drivers\DriverData
COMPUTERNAME=ESECONSULTING
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
OneDrive=C:\Users\eerae\OneDrive
TMP=C:\Users\eerae\AppData\Local\Temp
HOME=C:\Users\eerae
PROCESSOR_REVISION=9a03
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
GIT_EXEC_PATH=C:/Program Files/Git/mingw64/libexec/git-core
TEMP=C:\Users\eerae\AppData\Local\Temp
LOCALAPPDATA=C:\Users\eerae\AppData\Local
MSYSTEM=MINGW64
TERM=xterm-256color
COLORTERM=truecolor
USERDOMAIN=ESECONSULTING
ProgramFiles(x86)=C:\Program Files (x86)
Path=C:/Program Files/Git/mingw64/libexec/git-core;C:\Program Files\Git\mingw64\bin;C:\Program Files\Git\usr\bin;C:\Users\eerae\bin;C:\Program Files\Git\cmd;C:\Program Files (x86)\Microsoft SDKs\Azure\CLI2\wbin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;C:\Program Files\Microsoft SQL Server\150\Tools\Binn\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\Git\cmd;C:\Program Files (x86)\GitExtensions\;C:\Users\eerae\AppData\Local\Microsoft\WindowsApps;;C:\Users\eerae\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\eerae\.dotnet\tools
PROCESSOR_LEVEL=6
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 154 Stepping 3, GenuineIntel
TMPDIR=C:\Users\eerae\AppData\Local\Temp
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
NUMBER_OF_PROCESSORS=20
CommonProgramFiles=C:\Program Files (x86)\Common Files
PLINK_PROTOCOL=ssh
ProgramData=C:\ProgramData
ProgramW6432=C:\Program Files
ProgramFiles=C:\Program Files (x86)
SystemRoot=C:\Windows
SESSIONNAME=Console
LC_CTYPE=C.UTF-8
CommonProgramW6432=C:\Program Files\Common Files
ZES_ENABLE_SYSMAN=1
LOGONSERVER=\\ESECONSULTING
USERPROFILE=C:\Users\eerae
USERDOMAIN_ROAMINGPROFILE=ESECONSULTING
APPDATA=C:\Users\eerae\AppData\Roaming
HOMEDRIVE=C:
EXEPATH=C:\Program Files\Git
USERNAME=eerae
PROCESSOR_ARCHITEW6432=AMD64
PROCESSOR_ARCHITECTURE=x86
OS=Windows_NT
ComSpec=C:\Windows\system32\cmd.exe
SystemDrive=C:
windir=C:\Windows
OneDriveConsumer=C:\Users\eerae\OneDrive
ALLUSERSPROFILE=C:\ProgramData


------------
Diagnostic: File system
Skipped: False
Success: True
Exception: None
Log:
Temporary directory is 'C:\Users\eerae\AppData\Local\Temp\'...
Checking basic file I/O...
Writing to temporary file 'C:\Users\eerae\AppData\Local\Temp\a34f41c181a0608037415d3a'... OK
Reading from temporary file 'C:\Users\eerae\AppData\Local\Temp\a34f41c181a0608037415d3a'... OK
Deleting temporary file 'C:\Users\eerae\AppData\Local\Temp\a34f41c181a0608037415d3a'... OK
Testing IFileSystem instance...
UserHomePath: C:\Users\eerae
UserDataDirectoryPath: C:\Users\eerae\.gcm
GetCurrentDirectory(): C:\Work\Repos

------------
Diagnostic: Networking
Skipped: False
Success: True
Exception: None
Log:
Checking networking and HTTP stack...
Creating HTTP client... OK
IsNetworkAvailable: True
Sending HEAD request to http://example.com... OK
Sending HEAD request to https://example.com... OK
Acquiring free TCP port... OK
Testing local HTTP loopback connections...
Creating new HTTP listener for http://localhost:58764/... OK
Waiting for loopback connection... OK
Writing response... OK
Waiting for response data... OK
Loopback connection data OK

------------
Diagnostic: Git
Skipped: False
Success: True
Exception: None
Log:
Getting Git version... OK
Git version is '2.39.2.windows.1'
Locating current repository... OK
Not inside a Git repository.
Listing all Git configuration... OK
Git configuration:
file:C:/Program Files/Git/etc/gitconfig diff.astextplain.textconv=astextplain
file:C:/Program Files/Git/etc/gitconfig filter.lfs.clean=git-lfs clean -- %f
file:C:/Program Files/Git/etc/gitconfig filter.lfs.smudge=git-lfs smudge -- %f
file:C:/Program Files/Git/etc/gitconfig filter.lfs.process=git-lfs filter-process
file:C:/Program Files/Git/etc/gitconfig filter.lfs.required=true
file:C:/Program Files/Git/etc/gitconfig http.sslbackend=openssl
file:C:/Program Files/Git/etc/gitconfig http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
file:C:/Program Files/Git/etc/gitconfig core.autocrlf=true
file:C:/Program Files/Git/etc/gitconfig core.fscache=true
file:C:/Program Files/Git/etc/gitconfig core.symlinks=false
file:C:/Program Files/Git/etc/gitconfig pull.rebase=false
file:C:/Program Files/Git/etc/gitconfig credential.helper=manager
file:C:/Program Files/Git/etc/gitconfig credential.https://dev.azure.com.usehttppath=true
file:C:/Program Files/Git/etc/gitconfig init.defaultbranch=master
file:C:/Users/eerae/.gitconfig  core.editor="C:/Users/eerae/AppData/Local/Programs/Microsoft VS Code/bin/code" --wait
file:C:/Users/eerae/.gitconfig  core.compression=0
file:C:/Users/eerae/.gitconfig  user.name=Senne Eeraerts
file:C:/Users/eerae/.gitconfig  user.email=**@***.com
file:C:/Users/eerae/.gitconfig  user.password=***.
file:C:/Users/eerae/.gitconfig  https.postbuffer=1048576000
file:C:/Users/eerae/.gitconfig  merge.guitool=vscode
file:C:/Users/eerae/.gitconfig  mergetool.vscode.path=C:/Users/eerae/AppData/Local/Programs/Microsoft VS Code/Code.exe
file:C:/Users/eerae/.gitconfig  mergetool.vscode.cmd="C:/Users/eerae/AppData/Local/Programs/Microsoft VS Code/Code.exe" --wait --merge "$REMOTE" "$LOCAL" "$BASE" "$MERGED"
file:C:/Users/eerae/.gitconfig  pull.rebase=false
file:C:/Users/eerae/.gitconfig  fetch.prune=false
file:C:/Users/eerae/.gitconfig  rebase.autostash=false
file:C:/Users/eerae/.gitconfig  rebase.autosquash=false
file:C:/Users/eerae/.gitconfig  rebase.updaterefs=false
file:C:/Users/eerae/.gitconfig  diff.guitool=vscode
file:C:/Users/eerae/.gitconfig  difftool.vscode.path=C:/Users/eerae/AppData/Local/Programs/Microsoft VS Code/Code.exe
file:C:/Users/eerae/.gitconfig  difftool.vscode.cmd="C:/Users/eerae/AppData/Local/Programs/Microsoft VS Code/Code.exe" --wait --diff "$LOCAL" "$REMOTE"
file:C:/Users/eerae/.gitconfig  http.sslverify=true
file:C:/Users/eerae/.gitconfig  http.postbuffer=524288000
file:C:/Users/eerae/.gitconfig  gui.recentrepo=C:/Work/Repos/Integration/Integration
file:C:/Users/eerae/.gitconfig  credential.helper=store


------------
Diagnostic: Credential storage
Skipped: False
Success: True
Exception: None
Log:
ICredentialStore instance is of type: CredentialStore
Writing test credential... OK
Reading test credential... OK
Deleting test credential... OK

------------
Diagnostic: Microsoft authentication (AAD/MSA)
Skipped: False
Success: True
Exception: None
Log:
Broker not supported.
Flow type is: Auto
Gathering MSAL token cache data... OK
CacheDirectory: C:\Users\eerae\AppData\Local\.IdentityService
CacheFileName: msal.cache
CacheFilePath: C:\Users\eerae\AppData\Local\.IdentityService\msal.cache
Creating cache helper... OK
Verifying MSAL token cache persistence... OK

------------
Diagnostic: GitHub API
Skipped: False
Success: True
Exception: None
Log:
Using 'https://github.com/' as API target.
Querying '/meta' endpoint... OK

截图: 通过CMD克隆Git VSCODE问题 我认为问题可能与网络问题有关,但是从同一网络上的另一台计算机克隆正常工作。
我尝试过的事情:
  • 重置我的密码 - 不成功
  • 在Windows凭据管理器中删除GIT凭据 - 这使我能够重新输入我的密码(与用于登录Azure DevOps的密码相同),并且仅能成功克隆/推送一次,之后又失败了。
  • 重新安装GIT并不安装GIT凭据管理器
  • 只需在vscode中不断点击“推送”和“同步更改”按钮,就可以神奇地让它工作1次出30次。
  • 有时,如果我在本地设备上删除我的GIT凭据,我会被提示再次添加密码(VSCODE和GIT都会提示我),提供我的密码和我的两步验证器后,我会遇到“无法访问”的问题和致命错误。
  • 刷新DNS
  • 从另一台计算机克隆(正常工作)
  • ** 请注意,在1.5周内,使用客户提供给我的电子邮件地址推送和克隆repo没有任何问题,同时在浏览器上冲浪并在devops本身上编辑代码(仍然)正常工作。突然有一天回家后,出现了这个错误。**

这个回答能帮到你吗? - markalex
嗨,这是来自我的家庭网络,我没有使用任何代理等等...然而,当我在客户现场工作时,我能够成功地克隆/推送代码。所以这与我的家庭网络有关。 - Senne Eeraerts
1
我没有答案,但我刚刚设置了一台新电脑,尝试从dev.azure.com/myorg克隆存储库时遇到了完全相同的问题。也许这可能与最近的git版本有关? - James Hyot
你找到解决方案了吗?我不想尝试从头安装Windows,因为@JamesHyot说他在新电脑上也遇到了同样的问题。 - Carlos Cuevas
就我个人而言,我在一台全新的戴尔XPS系统上遇到了这个问题,该系统安装了Windows 11专业版,并且无论是无线连接还是有线连接都存在这个问题。我还验证了一个简单的命令'curl https://example.com',结果大约有30%的时间失败,显示'curl: (35) Recv failure: Connection was reset',而且我经常在浏览器中看到ERR_CONNECTION_RESET的错误。对我来说,戴尔预装了某种助手应用程序,用于“Killer”网络卡,只要我打开这个应用程序并关闭“Killer Prioritisation Engine”,问题就解决了。所以,如果你有类似的情况,不妨试试这个方法。 - undefined
显示剩余3条评论
2个回答

0

我在你的问题或问题中没有看到的一个工作是令牌

HTTPS URL 到 Azure(或 GitHub)应该使用 PAT个人访问令牌)作为密码

对于 Azure 访问:“使用个人访问令牌”。

假设 C:\Program Files\Git\usr\binC:\Program Files\Git\mingw64\bin 在你的 %PATH% 中:

  • 检查你的凭证助手:它应该是 "manager"(或 manager-core):

    git config --global credential.helper
    
  • 检查是否已经缓存了任何凭据(从简单的 CMD):

    printf "host= dev.azure.com\nprotocol=https\nusername=YOU" | git credential-manager get
    

    将 "YOU" 替换为你的 Azure 登录账户名

  • 如果你看到的是空的或不是你的令牌,请注册它:

    printf "host= dev.azure.com\nprotocol=https\nusername=YOU" | git credential-manager store YOUR_TOKEN
    

然后再尝试使用HTTPS访问(推送/拉取/获取)


注意:接下来是{{link1:git-ecosystem/git-credential-manager问题1150}},其中包括:

对于任何想要摆脱这个烦人问题的人,需要{{link2:禁用IPv6}}


0

我曾经遇到过完全相同的问题。在某个时候,它完全停止工作了。

所以我最终使用SSH克隆了我的repo。要做到这一点,您需要配置您的SSH密钥。在克隆存储库中选择SSH,然后管理SSH密钥。

Clone using SSH

请查看此链接以获取有关创建SSH密钥的帮助。

https://learn.microsoft.com/en-us/azure/devops/repos/git/use-ssh-keys-to-authenticate?view=azure-devops

它说你可以使用ssh-keygen生成你的密钥。我可以在命令提示符中运行该命令。我不知道是否每个人都可以,或者我之前安装了某些东西。无论如何,您可以使用其他工具(如PuttyGen)生成该密钥。

完成后,只需使用从克隆存储库屏幕复制的git@ssh.dev.azure.com:v3/organization/project/repo克隆您的存储库。

注意:

  • 在更改为ssh之前,我的解决方法是连接到VPN(工作VPN或卡巴斯基VPN)。这个方法有效了几个月。
  • 升级到Windows 11没有起作用,无需尝试。
  • 我没有安装全新的Windows副本。所以我不知道这是否有效。

(已编辑)

  • 我卸载了我的杀毒软件,并禁用了Windows防火墙。仍然无法工作。但VPN解决方法再次有效,即使重新安装后也是如此。仍在使用ssh。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接