【发布时间】:2010-10-10 12:37:13
【问题描述】:
我不知道如何在我的服务器上为其他用户创建公钥/私钥。在我的服务器上,我通过 shell 键入以下内容
(uiserver):john:> ssh-keygen -t dsa
之后,我输入文件名和密码,成功生成了“john”的私钥和公钥对。现在,当我使用此密钥 ssh 进入我的 subversion 存储库(坐在 john 上)时,所有操作都记录为“john”。太完美了。
接下来,我想为“george”创建一个公钥/私钥对,以便他可以访问我的服务器。我从我的服务器重复了 ssh-keygen。然后我把私钥给了乔治。 George 成功安装了密钥,但每次他在 svn 存储库中执行操作时,subversion 都会将他的操作记录为“john”而不是“george”。如何让 subversion 识别“george”和“john”之间的区别?
我查看了authorized_keys2,发现两个键的最终注释都是“john@uiserver”。我尝试编辑评论,但 subversion 仍然无法识别 george 和 john 之间的区别。
其他细节
根据 Juliano 的回答,我有一个半有效的解决方案。我去了“大卫”机器(linux),制作了prv/pub键,将pub键附加到john的authorized_keys2上。完美的! SVN 将 david 的更改记录为 david。
我去了“george”机器(windows xp),使用puttygen创建prv/pub密钥,将pub密钥附加到john的authorized_keys2。 George 可以访问 svn,但他的所有更改仍然记录为 john。一旦我弄清楚在 TortoiseSVN 中的何处配置它,我就会尝试 bojo 的隧道解决方案。
回答
我使用了 bojo 答案的选项 2。最后,我需要做的就是将以下行添加到我的 authorized_keys2
command="svnserve -t --tunnel-user=george",no-port-forwarding,no-X11-forwarding,no-agent-forwarding ssh-dss <george's long public key> == meaningful comment
我也加了一行
george=george's password
到我的 /pathtorepository/conf/passwd 到我的颠覆密码文件
【问题讨论】:
-
John,您需要以“john”身份登录 linux 机器并添加我所指的说明(添加 George 帐户作为超级用户,或者在 John 帐户下执行命令技巧) .您根本不需要配置 TortoiseSVN。