2013-11-24 29 views
2

我想爲單個主機ssh帳戶使用多個svn作者。我遵循http://svn.apache.org/repos/asf/subversion/trunk/notes/ssh-tricks的技巧爲隧道用戶,但它仍然顯示與我的託管ssh帳戶用戶名相同的作者。我也檢查過,SVN版本必須更新到1.0.x才能使它適用於隧道用戶。單個ssh帳戶的多個SVN用戶

UPDATE

我跟着什麼:

  1. 首先,我從我的託管帳戶id_rsa
  2. 然後我用PuttyGen導入截取的按鍵和提取私鑰。
  3. 後,我創建了膩子session我完全 域名(.COM/.NET等)和連接在SSH-私鑰> AUTH也 我說我的託管帳戶的用戶名在data爲自動登錄。
  4. 驗證我檢查了會話,它的工作沒有要求 任何密碼。
  5. 現在我在~/.ssh目錄創建了id_rsa密鑰的副本 authorized_keys這是由svnserve
  6. 需要然後我附加一條線現在command="~/bin/svnserve -t -r ~/svn --tunnel-user=makki",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAfagd..... [email protected]
  7. 當一切準備就緒,我創建的服務器回購與svnadmin create myrepo
  8. 我簽出svn+ssh://mydomain.com/home/svn/myrepo和它 成功簽出但現在當我承諾它顯示作者爲我的 ssh帳戶不是makki正如我在在authorized_keys文件。

請指導我在流很想念......

authorized_keys的內容

線#1 SSH-RSA AAAAB3 ..........
線#2 command =「〜/ bin/svnserve -t -r〜/ svn --tunnel-user = makki」,no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAAB3NzaC1yc2E .....

回答

2

如果它不工作,您必須在命令中缺少--tunnel-user選項或者您沒有爲用戶使用唯一的密鑰。

SSH configuration section of the SVN Book

它也可以讓多個用戶共享一個帳戶。 不是爲每個用戶創建一個單獨的系統帳戶,而是爲每個人生成一個公鑰/私鑰對 。然後將每個公鑰 到authorized_keys文件,每行一個,並使用--tunnel用戶 選項:

命令=「的svnserve -t --tunnel用戶=哈里」 TYPE1 KEY1 哈里@例。COM
命令= 「的svnserve -t --tunnel用戶=薩利」 TYPE2 KEY2 [email protected]

該實施例允許Harry和Sally通過公鑰認證連接到相同的 帳戶。他們每個人都有一個自定義的 命令將被執行; --tunnel-user選項告訴svnserve 假定命名參數是經過身份驗證的用戶。 沒有 -tunnel-user,它看起來好像所有提交都來自一個共享系統帳戶

強調我的。

根據對問題的更新,它在我看來就像是在重新使用密鑰。相反,您應該爲每個用戶生成一個唯一的密鑰。通常情況下,這將如何工作是用戶將生成自己的密鑰,然後給你你將添加的公鑰。如果密鑰已經存在於〜/ .ssh/authorized_keys文件中,那麼我懷疑最寬鬆的條目將適用。

+0

感謝@Ben,請檢查我在我的問題增加了流量,看看我做正確 – makki

+0

我已經更新了我的問題,我相信你沒有使用基於您發佈有什麼獨特的鍵。 –

+0

嗯...我也在這個方向思考..但它看起來'svnserve'沒有尋找我已經在我的'authorized_keys'文件中追加的公鑰。我已經從服務器添加了我的'authorized_keys'文件的內容,請檢查這些條目是否正確。 – makki

1

我的猜測是第1行與第2行有相同的密鑰,導致sshd只使用第1行?

在任何情況下,一對夫婦調試指針:

  1. 在服務器端,您可以使用--log-file選項svnserve調試,如果它甚至得到調用

    command="~/bin/svnserve -t -r ~/svn --tunnel-user=makki --log-file /home/makki/svnserve.log",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty

    現在,如果你tail -f /home/makki/svnserve.log,你應該看到一些活動,如果svn隧道通過svnserve按預期。

  2. 在客戶端,修改顛覆config文件指定ssh應該記錄在詳細級別(-v選項,而不-q)。這幫助了我很多時間來了解根本原因!

+0

沒有足夠的關鍵要確定。他只有所有密鑰共享的共同前綴(第二個密鑰包含一些基於密鑰類型的不同,但它仍然沒有足夠的獨特性可以得出任何結論)。但日誌文件建議是一個好主意。 –

+0

是的,我同意!我改變了語言以反映我正在猜測。 – vijucat