2021年12月23日 星期四

更換AD 密碼造成SourceTree 無法正常使用

這幾天例行更換了AD 密碼,就在更換了密碼後,原本在 SourceTree 上的 Repository

就都無法正常 Pull,然後一直跳 Git Credential Manager for Windows ,但輸入原本帳

密,但不知道甚麼原因認證沒過,所以一直重複跳出來,這問題有點神祕,需要備份

紀錄一下



當 SourceTree 要Pull 的時候,就會跳出帳密輸入視窗,但因為git server 網址與

帳密都沒有更換,應該要能成功登入才對,但輸入後還是一直跳



後續發想,會不會被 windows 認證cache 住了,所以前往「認證管理員」查看,

但似乎沒有 git server 可以移除哩,傻眼


接下來,就不由自主的開始懷疑是不是其實我有修改過 git server 登入密碼?但透過網頁

登入 git server ,是可以正常登入的,故再將問題關注回到 SourceTree


若每次都會跳出 Git Credential Manager for Windows 視窗,那是不是只要不採用此認證

,就沒問題了,那就處理提出問題的人的就對了


透過指令,git credential-manager uninstall 來移除 credential-manager 設定,

當輸入後,可在 C:\Users\{UserName}\.gitconfig 文件中,看到該項目被移除


但移除後,再使用 SourceTree Pull 會出現錯誤,這邊沒有截到圖,大意好像是你沒有有效的

認證途徑,應該要有甚麼...


好吧,再把 credential-manager 加回來,使用指令

git config --global credential.helper manager


於是,問題又回到原來的狀況了,案情分析

  • 更換AD密碼後,SourceTree 出現需要重新輸入帳密

  • git server url 與 SourceTree 帳密都沒有更換過

  • 透過網頁登入 git server 正常,代表帳密有效

  • Windows 認證從UI 介面上沒有屬於 git 網址的可移除項目


案情陷入死胡同...

最後只能拚拚看,SourceTree 記錄了密碼,但某種原因造成不正確?


來到目錄 「C:\Users\{UersName}\AppData\Local\Atlassian\SourceTree」,底下有個 passwd 檔案


使用記事本打開檔案來看,發現裡面有紀錄使用者mail 與密碼


先備份檔案,再將檔案刪除

然後重新使用 SourceTree 工具 Pull 任一 Repos,此時同樣會跳出 Git Credential Manager for Windows 

視窗,輸入原本帳密,神奇的是,這時候既然成功 Pull 了;再 Pull 其他 Repos ,雖然需要輸入

帳密,但也都成功了,神秘 ~~


回頭查看重新產生的 password 內容,比對之前備份的版本,表面上看起來密碼的雜湊值已

不相同,但這會不會就是造成此次的原因呢?似乎沒有很確定,因為 git server 與

登入帳密都沒有更換過,即使吃之前的設定值應該也要能通過才對...

以上就是這次處理的過程,


參考

沒有留言:

張貼留言