GitHub 認證失敗,無法從遠端抓取資料

Git disable 了TLSv1/TLSv1.1, 只提供 TLSv1.2 後,使用VS2017, 與Source Tree 做Fetch, Pull, Push皆出現認證失敗

在2/23時要用vs2017抓最新的程式碼下來build的時候卻發現命令列輸出這樣的錯誤訊息

cannot spawn askpass: No such file or directory
fatal: could not read Username for 'https://github.com': terminal prompts disabled

頓時之間還真完全不知道發生了什麼事

根據錯誤 google 了一下解決方案

第一時間會以為我的github帳號出了問題, 先是移除了 Credential manager 裡的 github 暫存認證

重新做過認證也發現沒有跳出兩階段認證

最後才發現是github 在認證方面有做了調整 

算了一下時間也是吻合的 February 22, 2018 19:00 UTC (11:00 am PST)

1. 試了更新Git-Credential-Manager-for-Windows,但同事有效,我卻沒效

2. 更新Visual Studio 2017 15.5.7, VS2017的 git fetch, pull, push即可正常運作

而這個fix 就是針對TLSv1.2 的 Team Explorer 支援的更新

可至 vs2017裡的 tool => extensions and updates 去手動更新 vs2017

3. 更新 source tree 至版本至 2.4.8,然而還是不能正常對 git fetch, pull, push 資料

跟舊版本一樣都會遇到 remote: Invalid username or password. fatal: Authentication failed for 的錯誤

找了許多做法,也都沒效,只好完整移除source tree 再重新安裝,即自動修復這個問題

這邊也記錄一下 source tree 的完整移除方式

a. 從 windows 裡的 add or remove programs 中移除 source tree 的程式
(但重新執行安裝程式不會重新安裝)

b. 至windows 裡的路徑 C:\Users\{username}\AppData\Local\Atlassian

將source tree 相關的目錄移除掉,如果你有安裝過兩個版本,這個目錄底下應該會有三個目錄

source tree 是放執行的相關程式路徑

其他兩個目錄則是放了舊版本與新版本的profile,  user config 資料

如果要完整移除的話,請把source tree的相關目錄全部刪除

c. 重新安裝 source tree 執行檔案

 

參考網址

https://skychang.github.io/2017/09/09/VSTS-Resolve_Git_connection_failure/

https://githubengineering.com/crypto-removal-notice/

https://confluence.atlassian.com/sourcetreekb/two-factor-authentication-2fa-with-github-in-sourcetree-402033499.html

https://github.com/Microsoft/Git-Credential-Manager-for-Windows/releases/tag/v1.14.0

https://docs.microsoft.com/zh-tw/visualstudio/releasenotes/vs2017-relnotes#15.5.7

https://stackoverflow.com/a/44552947