首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

SVN 密碼忘記/需切換賬號:一鍵清除本地憑證緩存

     編輯:Java 綜合教學

SVN 切換賬號/忘記密碼:刪除本地憑證緩存完整指南 (Windows/Linux/macOS)

Subversion (SVN) 客戶端為避免重複輸入,會將認證憑證 (用戶名/密碼) 加密緩存至本地文件系統。需切換賬號、密碼變更或安全清理時,必須手動清除緩存。本文提供全平台操作步驟。

核心原理

  • SVN 1.6+ 預設使用 加密緩存 (Windows: DPAPI, Linux: GNOME Keyring/KWallet, macOS: Keychain)
  • 緩存位置:~/.subversion/auth/svn.simple/ (基於文件) 或系統鑰匙串
  • 每個儲存庫 URL 對應一個緩存文件,文件名為隨機哈希

Windows 系統操作步驟

方法 1:文件刪除法 (最直接、通用)

  1. 打開檔案總管
  2. 地址欄輸入:%APPDATA%\Subversion\auth\svn.simple 並回車
    • 完整路徑:C:\Users\<你的用戶名>\AppData\Roaming\Subversion\auth\svn.simple
  3. 刪除該目錄下 所有文件 (或僅刪除目標儲存庫對應的文件)
  4. 下次 SVN 操作 (update/commit/log) 將重新提示輸入用戶名/密碼

方法 2:TortoiseSVN 圖形化操作

  1. 右鍵任意資料夾 → TortoiseSVN → Settings (設置)
  2. 左側選單:Saved Data (已保存的數據)
  3. 點擊 Clear (清除) 按鈕旁的 Authentication Data (認證數據)
  4. 確認彈窗,完成清除

方法 3:命令列清除 (適用腳本自動化)

REM 清除所有 SVN 認證緩存
del /f /q "%APPDATA%\Subversion\auth\svn.simple\*"

REM 或使用 SVN 命令 (需 SVN 命令列工具)
svn auth --remove   # 移除特定域
svn auth --remove-all             # 移除所有 (SVN 1.10+)

Linux / macOS 系統操作步驟

基於文件的緩存 (預設)

# 查看緩存文件
ls -la ~/.subversion/auth/svn.simple/

# 刪除所有緩存
rm -rf ~/.subversion/auth/svn.simple/*

# 刪除特定儲存庫 (先查看文件內容確認)
cat ~/.subversion/auth/svn.simple/
rm ~/.subversion/auth/svn.simple/

系統鑰匙串整合 (Ubuntu GNOME Keyring / macOS Keychain)

# Linux (GNOME Keyring) - 使用 secret-tool
secret-tool search svn.simple server 
secret-tool clear svn.simple server 

# macOS (Keychain Access) - 圖形化
# 1. 打開「鑰匙串訪問」App (Command+Space 輸入 Keychain)
# 2. 搜索 "svn" 或儲存庫域名
# 3. 右鍵選擇項目 → 刪除

# macOS 命令列
security delete-internet-password -s  -r 
security delete-generic-password -s 

IntelliJ IDEA / Android Studio 內建 SVN 清除

  1. File → Settings → Version Control → Subversion
  2. 取消勾選 Save authentication (保存認證)
  3. 點擊 Clear Auth Cache (清除認證緩存) 按鈕
  4. 或:Ctrl+Shift+A 輸入 "Clear SVN Authentication Cache" 直接執行

Eclipse / MyEclipse 清除

  1. Window → Preferences → Team → SVN
  2. 選中 SVN interface (SVNKit 或 JavaHL)
  3. 點擊 Clear Auth Cache 或刪除工作區 .metadata/.plugins/org.eclipse.team.svn.core/ 相關文件

驗證清除成功

    問題原因解決
    刪除文件後仍不提示密碼系統鑰匙串尚有緩存 (GNOME Keyring/Keychain)同步清除系統鑰匙串條目
    TortoiseSVN 清除無效多版本共存、緩存位置不一致檢查 %APPDATA%\Subversion 實際路徑,手動刪除
    Linux 提示 "No such file or directory"未曾緩存過、或使用系統鑰匙串檢查 ~/.subversion/auth/ 目錄是否存在
    想保留某儲存庫密碼需選擇性刪除查看緩存文件內容 (XML/屬性格式) 確認 realmstring,僅刪除目標文件


安全建議

  1. 定期輪換密碼:配合 SVN 緩存清理,確保舊密碼失效
  2. 禁用緩存 (高安全環境):~/.subversion/config 設置 store-auth-creds = no (僅當前用戶) 或 store-passwords = no (僅密碼)
  3. 使用 SSH Key 替代密碼:svn+ssh:// 協議配合 SSH 金鑰認證,更安全且免輸入密碼
  4. 企業環境統一管理:組策略分發 subversion/config 禁用緩存,配合 LDAP/SSO 認證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved