我不知道如何为我的服务器上的其他用户创建公钥/私钥。在我的服务器上,我通过 shell 键入以下内容

(uiserver):john:> ssh-keygen -t dsa

之后,我输入文件名和密码,这成功地生成了“john”的私钥和公钥对。现在,当我使用此 key ssh 进入我的 subversion 存储库(坐在 john 上)时,所有操作都记录为“john”。那很完美。

所以接下来,我想为“乔治”创建一个公钥/私钥对,以便他可以访问我的服务器。我从我的服务器重复了 ssh-keygen。然后我把私钥给了乔治。 George 成功安装了 key ,但是每次他在 svn 存储库中执行操作时,subversion 都会将他的操作记录为“john”而不是“george”。我如何让颠覆来识别“乔治”和“约翰”之间的区别?

我查看了authorized_keys2,我注意到两个键的最终注释都是“john@uiserver”。我尝试编辑评论,但 subversion 仍然无法识别乔治和约翰之间的区别。

附加详细信息

我有一个基于 Juliano's answer 的半工作解决方案。我去了“david”机器(linux),制作了 prv/pub key ,将 pub key 附加到 john 的authorized_keys2。完美的! SVN 将 david 的更改记录为 david。

我去了“乔治”机器(windows xp),使用puttygen创建prv/pub key ,将pub key 附加到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 到我的颠覆密码文件

最佳答案

svn manual 处查看有关如何使用 --tunnel-user 命令的说明。我想 George 以 John 的身份出现的原因是因为你没有告诉 ssh session 它是哪个用户,所以它默认为 John 的帐户。

澄清一下,原始海报有两个选项。

  • 为 George 创建一个新用户帐户。这假设他具有 super 用户访问权限。
  • 生成第二个 key (理想情况下是 George 这样做),附加到 John 帐户的 .ssh/authorized_keys 文件,并将上述链接的命令添加到 .ssh/authorized_users 文件中,如上所述。该链接还描述了如何限制附加用户对 John 帐户的访问。
  • 关于svn - 具有不同用户的 ssh-keygen 用于颠覆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/598005/

    10-13 05:24