2

我正在尝试将多个 svn 作者用于单个托管 ssh 帐户。我遵循http://svn.apache.org/repos/asf/subversion/trunk/notes/ssh-tricks了隧道用户的技巧,但它仍然显示与我的托管 ssh 帐户用户名相同的作者。我还检查了 SVN 版本必须比 1.0.x 更新以使其适用于隧道用户。

更新

我遵循的是:

  1. 首先,我从我的托管帐户中获取了密钥id_rsa
  2. 然后我用来PuttyGen导入和提取私钥。
  3. 之后,我session用我的完整域(.com/.net 等)在 Putty 中创建了一个,并将私钥附加到 SSH-> AUTH 中,我还添加了我的主机帐户用户名以data进行自动登录。
  4. 为了验证,我检查了会话,它不需要任何密码就可以工作。
  5. 现在我在dir 中 创建了我的id_rsa密钥副本,这是~/.sshauthorized_keyssvnserve
  6. 然后我附加了一行command="~/bin/svnserve -t -r ~/svn --tunnel-user=makki",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAfagd..... makki@domain.com
  7. 现在,当一切准备就绪时,我在服务器上创建了一个 reposvnadmin create myrepo
  8. 我签出svn+ssh://mydomain.com/home/svn/myrepo并成功签出但是现在当我提交时,它显示作者为我的 ssh 帐户,而不是makki我在authorized_keys文件中附加的行中提到的那样。

请指导我在流程中缺少什么...

授权密钥内容

line#1 ssh-rsa AAAAB3.......
line#2 command="~/bin/svnserve -t -r ~/svn --tunnel-user=makki",no-port-forwarding,无代理转发,无 X11 转发,无 pty ssh-rsa AAAAB3NzaC1yc2E .....

4

2 回答 2

2

如果它不起作用,您必须在命令中缺少 --tunnel-user 选项,或者您没有为用户使用唯一密钥。

SVN Book 的 SSH 配置部分

也可以让多个用户共享一个帐户。 不是为每个用户创建一个单独的系统帐户,而是为每个人生成一个公钥/私钥对。然后将每个公钥放入 authorized_keys 文件中,每行一个,并使用 --tunnel-user 选项:

command="svnserve -t --tunnel-user=harry" TYPE1 KEY1 harry@example.com
command="svnserve -t --tunnel-user=sally" TYPE2 KEY2 sally@example.com

此示例允许 Harry 和 Sally 通过公钥身份验证连接到同一个帐户。他们每个人都有一个将要执行的自定义命令;--tunnel-user 选项告诉 svnserve 假设命名参数是经过身份验证的用户。如果没有 --tunnel-user,看起来好像所有提交都来自一个共享系统帐户

强调我的。

根据您对问题的更新,在我看来您正在重用密钥。相反,您应该为每个用户生成一个唯一的密钥。通常,这将如何工作是用户将生成他们自己的密钥,然后给你你要添加的公钥。如果密钥已经存在于 ~/.ssh/authorized_keys 文件中,那么我怀疑最宽松的条目将适用。

于 2013-11-24T19:12:23.697 回答
1

我的猜测是第 1 行与第 2 行具有相同的键,导致sshd简单地使用第一个?

无论如何,有几个调试指针:

  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.logsvn 按预期通过 svnserve 隧道,你应该会看到一些活动。

  2. 在客户端,修改 Subversionconfig文件以指定ssh应以详细级别记录(-v不带选项-q)。这帮助我多次了解根本原因!

于 2013-12-20T02:41:49.927 回答