AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 58190
Accepted
Andrejs Cainikovs
Andrejs Cainikovs
Asked: 2009-08-25 16:04:13 +0800 CST2009-08-25 16:04:13 +0800 CST 2009-08-25 16:04:13 +0800 CST

svn 和 svn+ssh 的颠覆路径差异

  • 772

[02:48][root@server:~] ps 斧头 | grep svn 23986 ? Ss 0:00 /usr/bin/svnserve -d -r /srv/svn 正如你从参数中看到的,我的 svn 根目录是 /srv/svn。

现在,来自远程机器的一些魔法......

这有效:

> svn co svn://[email protected]/test-repo

但这不是:

> svn co svn+ssh://svn-user@<putty-session-name>/test-repo
'No repository found in 'svn+ssh://svn-user@<putty-session-name>/test-repo'

玩了几个小时,我发现如果我使用ssh隧道,我可以使用以下方法获取我的 repo:

> svn co svn+ssh://svn-user@<putty-session-name>/srv/svn/test-repo

...这意味着我应该指定回购的完整物理路径。嗯?

svn ssh svnserve
  • 4 4 个回答
  • 13799 Views

4 个回答

  • Voted
  1. Best Answer
    Andrejs Cainikovs
    2009-08-27T00:26:53+08:002009-08-27T00:26:53+08:00

    正如 womble 所说,这确实是 svn over ssh 的“功能”。

    我在没有指定存储库的完整路径的情况下让 svn+ssh 工作,因为 svn 服务器有一个 svnserve 包装脚本来代替原始的 svnserve 二进制文件。后来,在颠覆更新期间,这个脚本被原始二进制文件覆盖。

    解决方案:

    1. 将 svnserve 重命名为 bin

      mv /usr/bin/svnserve /usr/bin/svnserve.bin
      
    2. 将此脚本另存为 /usr/bin/svnserve:

      #!/bin/sh
      exec /usr/bin/svnserve.bin -r /srv/svn "$@"
      
    3. 更新权限

      chmod 755 /usr/bin/svnserve
      
    • 13
  2. womble
    2009-08-25T16:40:15+08:002009-08-25T16:40:15+08:00

    这是因为 svn over SSH ( svn+ssh://) 只是“本地”访问 subversion 存储库,使用 SSH 作为传输,因此您可以访问整个文件系统。相比之下,Svnserve 被告知“以 开始您的路径/srv/svn,因此您不必手动指定它。

    • 5
  3. slubman
    2009-08-27T13:59:51+08:002009-08-27T13:59:51+08:00

    您可以通过编辑 subversion 用户的 ~/.ssh/authorized_keys 来编辑使用 svn+ssh 的用户的 ssh 登录命令。用户的行将如下所示:

    command="/usr/bin/svnserve -r /srv/svn [other svnserve options]" <key type> <user key> <key comment>
    

    svn书里还有更多svn+ssh的技巧

    • 3
  4. mox601
    2010-08-26T07:40:14+08:002010-08-26T07:40:14+08:00

    这本身更像是一个问题,但它确实与这个问题有关。

    使用私钥/公钥设置 svn+ssh 后,我无法以这种方式使用相对路径访问我的仓库:

    svn co svn+ssh://svn@SERVERIP/simple-webapp-svn simple-webapp-svn
    

    因为我收到此错误:

    svn: URL 'svn+ssh://svn@SERVERIP/simple-webapp-svn' doesn't exist
    

    但只是这样:

    svn co svn+ssh://svn@SERVERIP/home/svn/projects/simple-webapp-svn simple-webapp-svn
    

    这是我在 /home/svn/.ssh 目录中的 authorized_keys2 文件

    $ sudo cat /home/svn/.ssh/authorized_keys2
    command="/usr/bin/svnserve.bin -t --tunnel-user=USERNAME",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa [rsa-key] [user-note]
    

    以及 Andrejs 在上一个答案中建议的 svnserve.bin 文件

    $ cat  /usr/bin/svnserve.bin 
    #!/bin/sh
    exec /usr/bin/svnserve -r /home/svn/projects "$@"
    

    我什至考虑过权限问题,这里列出:

    -rwxr-xr-x 1 root root 63684 2009-12-12 06:45 /usr/bin/svnserve
    -rwxr-xr-x 1 root root    61 2010-08-25 17:19 /usr/bin/svnserve.bin
    

    实在想不出解决办法...

    • 0

相关问题

  • Windows SSH 客户端

  • 如何为 SVN 提供透明的备份服务器

  • 在 Windows Server 2003 上通过 SSH 启动和停止 Mongrel 服务

  • 隧道 Xbox 网络流量 [关闭]

  • 为什么使用authorized_keys通过ssh自动登录不起作用?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve