我不知道如何为我的服务器上的其他用户创建公钥/私钥。在我的服务器上,我通过 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 的帐户。
澄清一下,原始海报有两个选项。
关于svn - 具有不同用户的 ssh-keygen 用于颠覆,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/598005/