从本地缓存中恢复 SVN 密码
Posted
技术标签:
【中文标题】从本地缓存中恢复 SVN 密码【英文标题】:Recover SVN password from local cache 【发布时间】:2011-08-20 03:18:49 【问题描述】:有没有办法从本地缓存中恢复密码?密码必须存储在某个地方,因为我可以运行
svn co http://my.svn.server/foo
但我自己丢失了密码。我必须重置它还是可以(以及如何)找到和解密密码?我在 Windows 上主要使用 CLI SVN,有时会切换到 TortoiseSVN 或 IntelliJ Idea SVN。
【问题讨论】:
Extract TortoiseSVN saved password. 的可能重复项 这不是重复的,TortoiseSVN 是与 svn 不同的软件,可能以完全不同的方式缓存密码。 @StephenPaulger 不,是的。如果您查看这两个问题的答案,您会发现它们都在谈论完全相同的文件和完全相同的工具。 【参考方案1】:在~/.subversion/auth/svn.simple/
中,您应该找到一个具有长十六进制名称的文件。密码是明文的。
如果有多个文件,您需要找到一个引用您需要密码的服务器的文件。
【讨论】:
存储在svn.simple
中的密码自Subversion 1.6开始加密。
我的参考 gnome-keyring 但在我的密钥环中看不到任何相关内容
如果您参考了 gnome-keyring,您的密码可能会简单地存储为“网络密码”。【参考方案2】:
在 Windows 上,Subversion 将身份验证数据存储在 %APPDATA%\Subversion\auth
中。然而,密码是加密存储的,而不是明文。
您可以解密这些内容,但前提是您以保存身份验证数据的同一用户身份登录 Windows。
甚至有人写了一个工具来解密这些。我自己从未尝试过该工具,所以我不知道它的效果如何,但您可能还是想尝试一下:
http://www.leapbeyond.com/ric/TSvnPD/
更新:在 TortoiseSVN 1.9 及更高版本中,您无需任何额外工具即可完成:
Settings Dialog
-> Saved Data
,然后点击文本“Authentication Data
”右侧的“Clear...
”按钮。将弹出一个新对话框,显示所有存储的身份验证数据,您可以在其中选择要清除的数据。不要清除,而是按住 Shift
和 Ctrl
按钮,然后在列表中按住 double click
。对话框中会显示一个新列,以明文形式显示密码。
【讨论】:
链接的程序也适用于通过 Eclipse 创建和管理的 repo。从这个意义上说,该程序的名称有点误导。 是的,这个名字有误导性。默认情况下,IntelliJ 也使用此位置。似乎他的位置是为所有 svn 客户共享的。 @Stefan - 我已经尝试了上面的 TSvnPD 并且能够找回密码。谢谢 设置对话框 -> 保存的数据等。提示对我有用(我不能只在工作中下载软件)。谢谢! “设置对话框”变体是多么绝对、非常疯狂。我想知道是谁想出这样隐藏它的想法。以及为什么。无论如何感谢过去。【参考方案3】:对于那些对 OS X 解决方案感兴趣的人,比如 Intelli-J,授权由 OSX 存储:
-
按 CMD+空格键
键入“钥匙串”
打开钥匙串访问
在左侧的“钥匙串”下,选择“登录”
在右侧的“类别”下,选择“所有项目”
在搜索框的右上角,输入主机 URL(例如 svn.mycompany.com)
如果您选择让 Mac 记住您的登录凭据,您的钥匙串项目将会显示。
双击该项目并选中弹出对话框底部的“显示密码”复选框。您必须输入您的 Mac 登录信息才能显示密码。
比尝试解密密码要容易得多:-)
【讨论】:
这是一个保护程序!谢谢。 哇,以前不知道这个。非常感谢!【参考方案4】:您在 Ubuntu (12.04) 中的 SVN 密码位于:
~/.subversion/auth/svn.simple/
但是在较新的版本中,正如前面有人提到的那样,它们是加密的。要查找 gnome-keyring 密码,建议您使用“gkeyring”程序。
要在 Ubuntu 上安装它 - 添加存储库:
sudo add-apt-repository ppa:kampka/ppa
sudo apt-get update
安装它:
sudo apt-get install gkeyring
然后运行如下:
gkeyring --id 15 --output=name,secret
尝试使用不同的密钥 ID 来找到与您正在寻找的匹配的配对。感谢 kampka 的软文。
【讨论】:
在 Ubuntu 上,使用默认的 Passwords and Keys 实用程序来显示您的所有密码就足够了。我非常惊讶那里存储了多少用户帐户和密码!帮助找出忘记的 SVN 密码。【参考方案5】:只需使用此解密器即可解密您本地缓存的用户名和密码。
默认情况下,TortoiseSVN 将缓存的凭据存储在 %APPDATA%\Subversion\auth\svn.simple 目录中的文件中。密码使用 Windows 数据保护 API 加密,密钥与您的用户帐户相关联。此工具读取文件并使用 API 解密您的密码
svn password decryptor
【讨论】:
这个是最简单的以上是关于从本地缓存中恢复 SVN 密码的主要内容,如果未能解决你的问题,请参考以下文章