我正在尝试将多个svn作者用于单个托管ssh帐户。我跟踪了来自http://svn.apache.org/repos/asf/subversion/trunk/notes/ssh-tricks
的隧道用户的技巧,但它仍然显示与我的托管ssh帐户用户名相同的作者。我还检查过SVN版本必须比1.0.x更新,以使其适用于隧道用户。
更新
我遵循的内容:
id_rsa
PuttyGen
导入并解压缩了私钥。session
域名(.com / .net等)并在SSH-> AUTH中附加私钥
我在data
中添加了我的主机帐户用户名以进行自动登录。id_rsa
目录中创建了~/.ssh
密钥的副本
authorized_keys
svnserve
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
svnadmin create
myrepo
svn+ssh://mydomain.com/home/svn/myrepo
和它结帐了
成功检查但现在当我提交它显示作者我的
正如我在附加的行中提到的那样,ssh帐户不是makki
在authorized_keys
档案中。请指导我在流程中缺少的内容......
authorized_keys内容
第1行ssh-rsa AAAAB3 ..........
line#2 command =“〜/ bin / svnserve -t -r~ / svn --tunnel-user = makki”,no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no -pty ssh-rsa AAAAB3NzaC1yc2E .....
答案 0 :(得分:2)
如果它不起作用,您必须在命令中缺少--tunnel-user选项,或者您没有为用户使用唯一键。
来自SSH configuration section of the SVN Book:
也可以让多个用户共享一个帐户。 生成,而不是为每个用户创建单独的系统帐户 每个人的公钥/私钥对。然后放置每个公钥 进入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文件中,那么我怀疑最宽松的条目将适用。
答案 1 :(得分:1)
我的猜测是#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
现在,如果您tail -f /home/makki/svnserve.log
,如果svn按预期通过svnserve隧道,您应该会看到一些活动。
在客户端,修改Subversion config
文件以指定ssh
应该记录详细级别(-v
选项而不-q
)。这让我有很多时间了解根本原因!