secd
又稱:鑰匙圈和密碼
簡短回答
secd是管理你使用者帳號中鑰匙圈項目的macOS程序:存放在「iCloud鑰匙圈」或「本機項目」中的密碼、密碼鑰、密鑰和憑證。每個儲存或自動填寫密碼的App都會向secd索取,開啟「iCloud鑰匙圈」時,secd也會讓這些項目與你的其他裝置保持同步。
secd以你自己的帳號執行,所以活動監視器的「使用者」欄位會顯示你的名稱。它與securityd一起運作,securityd是以root執行的較舊程序,負責Mac從早期版本就在使用的檔案型鑰匙圈,也就是「登入」和「系統」。secd則負責較新的鑰匙圈,「iCloud鑰匙圈」、密碼鑰和受Touch ID保護的項目都依賴它。「密碼」App會顯示你儲存的密碼和密碼鑰,「鑰匙圈存取」則會列出兩種鑰匙圈。
大部分時間secd都處於閒置狀態。只有真正有工作時它才會忙起來:新Mac上或開啟「iCloud鑰匙圈」後的第一次同步、更改Apple帳號密碼後裝置重新連線、大量輸入密碼,或某個App一再要求同一個項目。最後一種通常就是它一直排在CPU列表前面的原因。
secd為什麼使用這麼多CPU
最常見的原因是同步。Mac加入「iCloud鑰匙圈」時,secd會下載、解密並合併你其他裝置上的每個項目;每當大量項目同時變更,它都要再做一次同樣的工作。鑰匙圈裡有數千個密碼、密鑰和憑證時會更耗時,而且在裝置之間互相同步進度時,這項工作可能會一波一波地出現。
一直不結束的飆升,通常表示陷入了循環。某個App向secd要求一個項目,收到錯誤或被拒絕後再次要求,每秒好幾次。密碼管理工具、瀏覽器、VPN App和儲存登入權杖的開發者工具是常見的嫌疑對象,往往就在App剛更新之後。
該怎麼處理
換新Mac、重新登入或更改密碼之後,讓Mac保持喚醒,等待同步完成。它會自行結束。如果是循環,就一次結束一個App,從儲存密碼或權杖的App開始,同時在活動監視器中觀察secd。如果結束某個App後它降了下來,就更新那個App,或登出後再重新登入。
如果找不到是哪個App,請打開「系統設定」→[你的名稱]→「iCloud」→「密碼」,關閉「同步此Mac」,重新啟動後再開啟。你的密碼仍會保留在iCloud和你的其他裝置上。在活動監視器中結束secd只能撐一下:macOS會立刻再次啟動它。
如何查看secd在做什麼
正常運作的同步會漸漸安靜下來,迴圈則每隔幾分鐘看起來都一樣。活動監視器和「終端機」可以告訴你是哪一種。
- 打開活動監視器,按一下「CPU」標籤頁,選擇「顯示方式」→「所有程序」,然後在搜尋欄位中輸入
sec。你會看到secd列在你自己的使用者名稱下,securityd列在root下。 - 觀察secd的「% CPU」幾分鐘。數值逐漸降到零,表示同步快完成了。數值一直居高不下,或者規律地起起伏伏,就是迴圈。
- 按一下「網路」標籤頁,在搜尋欄位中輸入
cloudd。cloudd負責傳送iCloud的同步流量。如果secd很忙,同時cloudd在收發資料,鑰匙圈多半正在同步。如果secd很忙而cloudd很安靜,就改找你Mac上的某個App。 - 想看細節,就打開「終端機」並執行
log stream --predicate 'process == "secd"'。反覆出現同一個App或項目的那幾行,指出的就是要檢查的App。按下Control-C即可停止。
secd的正常用量與異常情況
正常:secd平常接近零,在App儲存或自動填寫密碼時短暫活動一下。在新的Mac上、開啟iCloud鑰匙圈之後,以及更改Apple帳號密碼之後,它會忙得比較久。
值得檢查:你什麼都沒做,它卻連續忙上好幾個小時、風扇開始轉,或App自動填寫密碼很慢。常見原因如下:
- 新的或剛回復的Mac第一次進行iCloud鑰匙圈同步,鑰匙圈很大時可能要花一段時間。
- 大量輸入,例如把其他密碼管理工具或瀏覽器中的密碼輸入到「密碼」App。
- 某個App不斷重複要求同一個鑰匙圈項目,常見於更新後的密碼管理工具、瀏覽器、VPN App或開發者工具。
- 多年累積的舊項目,例如不再使用的App留下的憑證和金鑰,會讓每次搜尋和同步都拖得更久。
鑰匙圈存放在哪裡
兩種鑰匙圈都在你的使用者「資源庫」中,位於~/Library/Keychains。登入鑰匙圈是檔案login.keychain-db,secd管理的鑰匙圈則在那裡一個以長串ID命名的檔案夾中。
不要為了解決CPU問題而刪除或搬移這些檔案。只存在這台Mac上的項目,例如不會同步密碼的App所儲存的密碼,會因此遺失。要尋找和移除舊項目,請使用「鑰匙圈存取」(可以在Spotlight中搜尋打開)和「密碼」App。
大家常問的問題
Mac上的secd是什麼?
它是管理你使用者帳號中鑰匙圈項目(例如密碼和密碼鑰)並將它們與「iCloud鑰匙圈」同步的macOS程序。每個儲存或自動填寫密碼的App都會經過它。
secd的CPU用量為什麼很高?
如果只是短暫的,那是因為換新Mac、重新登入或更改密碼後,「iCloud鑰匙圈」正在同步。如果持續好幾個小時,那是因為某個App不停向它要求同一個項目。一次結束一個儲存密碼或權杖的App,就能找出是哪一個。
secd和securityd有什麼不同?
兩者都是macOS鑰匙圈的一部分。securityd以root執行,負責較舊的檔案型鑰匙圈,也就是「登入」和「系統」。secd以你的身分執行,負責「iCloud鑰匙圈」和密碼鑰所使用的鑰匙圈。
secd是病毒嗎?
不是。它是macOS的一部分,位於/usr/libexec/secd,在磁碟上只有Apple更新才能更改的密封區域中,並由launchd以你自己的帳號啟動。每台Mac都會執行它。
為什麼Mac一直要我輸入鑰匙圈密碼?
通常是因為登入鑰匙圈的密碼和Mac的登入密碼不再一致,多半發生在登入密碼被重設之後。這個鑰匙圈屬於securityd,而不是secd。Apple的解決方法是在「鑰匙圈存取」→「設定」中選擇「重置預設鑰匙圈」,但這會刪除儲存在登入鑰匙圈中的密碼,所以Apple建議只在Apple支援人員建議時才這麼做。
相關詞條
想找比活動監視器更好的工具?請參閱Mac上最好用的活動監視器替代方案,或瀏覽詞彙表中的所有詞條。