2010-04-08 65 views
26

我完成了本書所說的所有操作,即從.subversion/auth中刪除了身份驗證文件,並且明確地將相關配置參數設置爲'yes'即使這是一個默認值,但shell SVN命令每次都要求輸入密碼。存儲庫位於cvsdude.com上,客戶端是Linux。我也使用緩存密碼OK的Subclipse插件。即使配置設置爲允許,也無法創建SVN存儲密碼

我依稀記得,當我開始使用它時,命令以交互方式詢問我是否想保存清除密碼,並且我說不。這個選擇可以存儲在某個地方並且優先於配置嗎?

+1

在運行桌面環境(GNOME,KDE等)時,或者說當ssh進入機器時,是否運行'svn'? – ZoogieZork 2010-04-08 15:28:58

+3

你使用'svn + ssh://'登錄嗎? – 2010-04-08 15:36:11

+1

另外,我們可以看到你的'〜/ .subversion/config'和'〜/ .subversion/servers'文件的內容嗎?只需要'config'中的[auth]節和[servers]中的[global]'就足夠了。 – ZoogieZork 2010-04-08 15:40:01

回答

5

感謝您的意見,我發現問題 - 這是服務器文件中的設置(不要存儲普通密碼)。我想知道爲什麼配置文件的[auth]部分有這種冗餘。在談到存儲密碼時,SVN book也沒有提到這一點。

+2

我需要對服務器文件進行更改 #密碼/密碼短語緩存參數: store-passwords = yes store-plaintext-passwords = yes – 2011-11-15 10:52:45

+1

配置文件中,有一行:###此文件中此部分的其餘部分已被棄用。###'store-passwords'和'store-auth-creds'現在都可以在您的config目錄的'servers'文件中指定###。 ###本節中指定的任何內容均被「服務器」文件中指定的設置###覆蓋。 – 2012-05-08 02:52:28

+0

@HoàngLong謝謝 – davka 2012-05-08 13:06:20

7

我遇到了同樣的問題,並認爲我在.subversion/servers和.subversion/config中設置了所有合適的配置,嘗試刪除.subversion/auth等,但無濟於事。

我最終通過移動.subversion目錄(或刪除它也能工作)並運行svn co。我收到以下消息:

----------------------------------------------------------------------- 
ATTENTION! Your password for authentication realm: 

    <http://sweeney:80> Subversion repository 

can only be stored to disk unencrypted! You are advised to configure 
your system so that Subversion can store passwords encrypted, if 
possible. See the documentation for details. 

You can avoid future appearances of this warning by setting the value 
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in 
'/home/davids/.subversion/servers'. 
----------------------------------------------------------------------- 
Store password unencrypted (yes/no)? 

我輸入yes,然後得到相同的消息。固執地,我再次輸入了yes。現在我的密碼似乎被保存了。有點令人驚訝的是,看着.subversion中的配置,沒有任何設置被取消註釋;他們都設置爲默認值,所以我想我將不得不回答這個警告兩次,以保存將來不同服務器的密碼。

希望這會有所幫助。

+0

謝謝。看到我對這個問題的評論 - 我在其中一個配置文件中找到了解決方案。 – davka 2011-04-20 06:36:46

+0

是的!謝謝! – sourcedelica 2014-11-05 15:17:59

+0

謝謝,這也幫助了我。 (我也有上述所有設置沒有任何成功)。 – TondaCZE 2015-01-22 11:05:50

2

即使沒有X inited,您也可以使用gnome-keyring。 你應該在登錄時運行

export `gnome-keyring-daemon` 

kill $GNOME_KEYRING_PID 
註銷前

然後你可以使用命令行工具keyring_tool

3

我需要做出更改服務器上的文件,使這項工作對我來說

# Password/passphrase caching parameters: 
store-passwords = yes 
store-plaintext-passwords = yes 
1

從我在以前的答案讀,這些都不奏效。我發現爲我工作的可能是事物的組合,或者這是打開鑰匙鏈應用程序的最後一步,找到問題的關鍵。

右鍵單擊並轉到「獲取信息」。點擊頂部的訪問控制部分。然後點擊「允許所有應用程序訪問此項目」。雖然這可能會做一些意想不到的事情。

+0

工作,謝謝 – 2017-12-08 12:11:07

9

我想提交詳細的答案,以備將來幫助某人。

Subversion 1。6和更高版本會默認緩存您的用戶名和密碼,但它不會以明文方式緩存密碼,除非您明確允許通過命令行或更改Subversion配置。

如果使用--username和--password選項,你會看到下面的消息檢出了一份工作副本:

----------------------------------------------------------------------- 
ATTENTION! Your password for authentication realm: 

<https://subversion.assembla.com:443> Assembla Restricted Area 

can only be stored to disk unencrypted! You are advised to configure 
your system so that Subversion can store passwords encrypted, if 
possible. See the documentation for details. 

You can avoid future appearances of this warning by setting the value 
of the 'store-plaintext-passwords' option to either 'yes' or 'no' in 
'~/.subversion/servers'. 
----------------------------------------------------------------------- 
Store password unencrypted (yes/no)? 


所以如消息中所提到的,顛覆僅會如果輸入'yes',則保存未加密的密碼。如果你這樣做,那麼在將來執行svn命令時,你不需要添加--username或--password選項。

不過,如果你不希望看到這樣的提示都可以通過更改名爲「服務器」本地計算機上的配置文件更改您的Subversion客戶端的全局配置。它存儲在這裏:

~/.subversion/server 

您需要將下面的行添加到「服務器」文件:

[global] 
store-plaintext-passwords = yes 

隨着這一變化,您只需要使用執行命令SVN - 用戶名和 - 密碼選項一次。然後Subversion會自動保存你的憑證而不需要上述提示。

有關禁用有關緩存密碼以明文形式看到Subversion 1.6 Security Improvements博客文章這一警告的詳情。

0

爲我工作的溶液(甚至心不是」更好的解決方案,至少保釋我出去),這是授予我的本地用戶的所有權限到〜/的.subversion目錄和subdirectorys。然後,我可以在沒有提示用戶名和密碼的情況下快速進行顛覆操作。

32

隨着最新版本的顛覆(〜1.8),您可以通過$HOME/.subversion/servers配置密碼緩存:

[global] 
store-passwords = yes 
store-plaintext-passwords = yes 

但是取決於你的系統,這可能是不夠的。如果不是,請確保$HOME/.subversion/config包含:

[auth] 
password-stores = 

這意味着變量密碼存儲顯式設置爲空字符串(背景是SVN現在包含了一些關鍵的代理工具支持 - 和連接到默認配置的可能會很脆弱 - 導致無聲地忽略上述選項和非緩存行爲)。

當使用SVN首次,第一SVN操作之後被創建$HOME/.subversion的層次結構 - 例如在做第一次結帳時。然後Subversion創建所提及的文件並用最重要的選項填充它們 - 註釋掉,包括一些文檔。

因此,也是情理之中的移動老$HOME/.subversion目錄客場有一個明確的起點。

另一個缺陷是權限 - 即在$HOME/.subversion下不可讀的文件 - 但這通常不是問題,因爲當svn創建它們時,它會處理正確的權限(例如,auth目錄只能被用戶,然後,而不是組/所有,獨立於配置的umask)。

+0

非常感謝 – davka 2013-07-01 08:38:06

+0

請注意''password-stores ='行必須放在'[auth]'部分。 – 2014-01-29 14:22:32

+0

@ThomasLeonard,是的,將節標題添加到配置片段。 – maxschlepzig 2014-04-01 20:52:36

1

如果您嘗試重置現有工作副本上的身份驗證,我建議您在完成上述所有更改後簽出新副本。這是我嘗試使用maven-release-plugin(使用存儲的svn憑據以自動提交標籤等)發佈項目時唯一對我有用的東西。

2

我想我這裏發現了一個有用的提示: http://svn.haxx.se/users/archive-2013-07/0094.shtml

據我所知,客戶忘記檢查「gpg-agent」是否正在運行。

默認情況下,它將「passtype」=「gpg-agent」插入~/.subversion/auth/svn.simple/ -cache-files。

這是一個錯誤!

作爲一個解決方案(並避免在〜。/ subversion/auth/svn.simple /手動更改密碼緩存文件)刪除這些文件(但做一個保存副本)。

添加行,爲~/.subversion/config([AUTH] -section):

password-stores= 

(考慮:!空值,這樣可以防止在選擇任何錯誤的東西在客戶端,並承擔 「簡單」)

現在例如嘗試一個:

svn up 

Subversion現在會警告你保存簡單的密碼。

如果你沒有問題,輸入「是」,一切都很好。

之後,Subversion爲特定服務器創建了一個緩存文件,並且可以再次刪除「password-stores」-entry。

1

由於某些奇怪的原因,我的.subversion文件夾不屬於我,SVN也不會保存密碼證書。

我只是做了一個sudo chown -R me ~/.subversion現在一切正常!

+0

我有一個類似的問題(svn不記得密碼,每次提示),我做了'rm -rf〜/ .subversion',(如果不同,你必須重新輸入所有密碼甚至用戶名本地用戶)。現在它記得我的憑證。如果有的話,調整'/ etc/subversion/servers'和...''config',而不是'〜/ .subversion'。 – 2014-10-06 10:29:33

1

請注意,在svn co/up和svn log之間存儲密碼存在差異!

我嘗試了上面的所有提示,一直試圖用'svn log'進行驗證 - svn命令總是問我一次又一次輸入密碼,無論store-plaintext-passwords是否正確設置以詢問或是。但是當我做了一個新的結賬或更新,我突然有了正確的行爲,我的密碼得到保存

我認爲這是一個錯誤的顛覆,以不同的處理密碼存儲爲不同的命令 - 至少我讀了否在那之前。

2

在使用slikSVN的Windows上,我遇到了同樣的問題,但只有其中一個項目,所以我進入了%AppData%\ Roaming \ Subversion \ auth \ svn.simple並刪除了包含該項目信息的文件。

我輸入的下一個SVN命令要求輸入密碼並重新創建文件,現在它運行良好。

也許我改變配置和服務器文件的事實也有幫助,但是直到我刪除該文件時它才工作(並且它也與以前的配置一起工作,直到服務器上出現密碼問題並且管理員重置權限)。

+0

更改配置和服務器文件沒有解決我的問題。但刪除svn.simple文件夾解決了它(可能與新的配置和服務器文件一起) – lamostreta 2015-01-12 13:59:51

1

我在密碼更改後遇到了這樣的問題,並修復了刪除SVN配置(從頭開始重新創建)的問題。

4

刪除舊存儲的密碼,如rm〜/ .subversion/auth/svn.simple/*。我嘗試了其他所有建議,這對我來說是有效的。從下面的目錄

+1

這是爲我工作。乾杯 – 2016-01-11 12:09:42

1

刪除文件:

對於Windows:

例如:

C:\用戶\ abcd.xyz \應用程序數據\漫遊\顛覆\權威性\ SVN。簡單

abcd.xyz - >用戶名

注意:刪除所有文件。這些文件包含有關結帳的元數據。下次你存儲你的密碼時,它會自動在這裏創建一個文件。

從您的STS/Eclipse安裝中刪除.keyring文件。停止Eclipse並刪除文件。

例如:

d:\可執行\新 STS \ STS-3.5.0-e4.3.2-Win64的\配置\ org.eclipse.core.runtime - >鑰匙圈