使用单个ssh帐户的SVN的多个用户

使用单个ssh帐户的SVN的多个用户,svn,ssh,ssh-tunnel,Svn,Ssh,Ssh Tunnel,我正在尝试为单个托管ssh帐户使用多个svn作者。我遵循了http://svn.apache.org/repos/asf/subversion/trunk/notes/ssh-tricks用于隧道用户,但仍显示与我的托管ssh帐户用户名相同的作者。我还检查了SVN版本必须更新到1.0.x,以使其适用于隧道用户 更新 我遵循的是: 首先,我从我的托管帐户id\u rsa 然后我使用PuttyGen导入并提取私钥 之后,我在Putty中创建了一个会话,并完成了 域(.com/.net等),并在SSH

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

更新

我遵循的是:

  • 首先,我从我的托管帐户
    id\u rsa
  • 然后我使用
    PuttyGen
    导入并提取私钥
  • 之后,我在Putty中创建了一个
    会话
    ,并完成了 域(.com/.net等),并在SSH->AUTH中附加私钥 我在
    data
    中添加了我的主机帐户用户名,以便自动登录
  • 为了验证,我检查了会话,它在没有询问的情况下工作了 任何密码
  • 现在,我在
    ~/.ssh
    目录中创建了我的
    id\u rsa
    密钥的副本
    svn服务所需的
    授权密钥
  • 然后我附加了一行
    命令=“~/bin/svnserve-t-r~/svn”
    --隧道用户=makki“,无端口转发,无代理转发,无X11转发,无pty
    ssh rsa AAfagd。。。。。makki@domain.com
  • 现在,当一切就绪时,我在服务器上用
    svnadmincreate创建了一个repo
    myrepo
  • 我与
    svn签出+ssh://mydomain.com/home/svn/myrepo
    还有它 已成功签出,但现在当我提交时,它会将作者显示为我的 ssh帐户不是我在附加的行中提到的 在
    授权密钥
    文件中
  • 请引导我在流程中缺少的东西

    授权密钥内容

    第1行ssh rsa AAAAB3。。。。。。。。。。

    line#2 command=“~/bin/svnserve-t-r~/svn--tunnel user=makki”,无端口转发、无代理转发、无X11转发、无pty ssh rsa aaaaaab3nzac1yc2e…..

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

    从:

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

    command=“svnserve-t--隧道用户=harry”类型1键1 harry@example.com
    command=“svnserve-t--隧道用户=sally”类型2 键2sally@example.com

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

    我的

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

    我猜第#1行的密钥与第#2行的密钥相同,导致
    sshd
    仅使用第一个密钥

    在任何情况下,都需要两个调试指针:

  • 在服务器端,您可以使用
    --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
    command=“~/bin/svnserve-t-r~/svn--tunnel user=makki--log file/home/makki/svnserve.log”,无端口转发,无代理转发,无X11转发,无pty
    现在,如果您
    tail-f/home/makki/svnserve.log
    ,如果svn按预期通过svnserve,您应该会看到一些活动

  • 在客户端,修改Subversion
    config
    文件,以指定
    ssh
    应在详细级别进行日志记录(
    -v
    选项不带
    -q
    )。这帮助我很多次了解了根本原因


  • 谢谢@Ben,请检查我在问题中添加的流程,看看是否正确。我已经更新了我的问题,我相信你没有根据你发布的内容使用唯一的密钥。嗯。。。我也在朝这个方向思考。。但是看起来
    svnserve
    并不是在寻找我在
    authorized_keys
    文件中附加的公钥。我已从服务器添加了我的
    授权密钥
    文件的内容,请检查条目是否正确。密钥不足,无法确定。他只得到了所有密钥共享的公共前缀(第二个密钥包含了一些根据密钥类型不同而不同的前缀,但它仍然没有唯一性,无法得出任何结论)。但是日志文件的建议是个好主意。是的,我同意!我改变了语言以反映我的猜测。