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://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