2010-09-15 32 views
2

有沒有辦法將TortoiseSVN保存的登錄名/密碼從機器移動到機器的網絡存儲庫?剛拿到一臺新機器,知道我的用戶名,但不記得我登錄到存儲庫。將保存的TortoiseSVN身份驗證移至另一臺計算機?

我知道TortoiseSVN保存了在%APPDATA%\顛覆\權威性的目錄,一些身份驗證信息

搬了過來,我發現在svn.simple文件;我以明文形式看到我的用戶名,但密碼已加密。我還會在文件中看到「wincrypt」,這就是所調用的加密功能。

通常我只是讓SVN管理員爲我重置它,但直到下週他都會休假,SVN的另一位管理員也是如此。

我可以潛入TortoiseSVN的源代碼,看看如何完成身份驗證,但必須有一個更簡單的方法。如果可以的話,我可以在舊機器的成功認證上運行Wireshark。

+1

我*認爲*使用用戶的Windows登錄憑據對身份驗證進行了加密,這使得您不想要的。 – 2010-09-15 18:24:17

+0

如果您知道使用哪種加密方法以及在哪裏可以找到密鑰,那麼有辦法解密認證。例如,有一個使用Windows Data Protection API進行解密的工具(http://www.dpapick.com/) – dr3x 2010-09-16 00:52:21

回答

2

解決!原來這很容易解決。

Wireshark是答案。捕獲了我的舊機器和存儲庫主機之間的通信,從TortoiseSVN啓動了repo瀏覽器。然後我跑了 「跟隨TCP流」 在交談中,發現這一行:

授權:基本ZHIzeDppc0F3ZXNvbWU =

這裏的PowerShell腳本將其解碼:
$基本= 「ZHIzeDppc0F3ZXNvbWU =」
[ System.Text.Encoding] :: ASCII.GetString([系統。轉換] :: FromBase64String($基本))

返回純文本: UNAME:PWD

+0

哇!非常感謝;這只是做了伎倆。 – koenig 2010-12-28 09:38:30

1

the help file,TortoiseSVN同時也儲存憑據的%appdata%\Subversion\auth子文件夾:

  • svn.simple包含了基本認證(用戶名/密碼)的憑據。
  • svn.ssl.server包含SSL服務器證書。
  • svn.username包含僅用於用戶名認證的憑據(不需要密碼)。

我想你可以試着將這些文件夾複製到另一臺機器上。

+0

是的,我已經嘗試過了,它不起作用。還從3個位置(2 HKCU + 1 HKLM)複製註冊表項;整個%programfiles%\ TortoiseSVN文件夾和2%appdata%文件夾(Subversion和TortoiseSVN)。仍然提示輸入密碼。 – dr3x 2010-09-15 19:03:25

-1

我想你會想這不是是可能的,因爲這意味着任何人都可以複製一些文件,並能夠使用您的SVN帳戶進行更改。也許最好這是不可能的,而且事情更安全。

相反,您應該在內部制定一個關於密碼管理的更好策略,這樣您就不需要依賴某些人蔘與此類活動(即bus factor)。

1

使用來自登錄用戶的數據使用Windows加密API對憑證進行加密。這意味着加密基於您的Windows登錄帳戶,因此無法將其複製到其他計算機,即使您在此設置了具有相同用戶名和密碼的用戶。

+0

你知道用什麼信息來加密憑據嗎? DPAPICK無法使用舊機器的主密鑰;可能是另一種加密方法。 – dr3x 2010-09-16 17:04:58

+0

CryptProtectData(),請參閱svn源代碼:http://svn.apache.org/repos/asf/subversion/trunk/subversion/libsvn_subr/win32_crypto.c – Stefan 2010-09-17 05:56:42

3

看到這個答案:Extract TortoiseSVN saved password

如果您仍然可以訪問舊機和Windows用戶帳戶,然後您可以使用第三方「TortoiseSVN密碼解密器」實用程序提取密碼。

Wireshark是另一個不錯的選擇,但我不相信它會幫助您獲得SSL存儲庫。

相關問題