【问题标题】:Global Subversion SSH config in Windows / Checking out Subversion project as SYSTEM on WindowsWindows 中的全局 Subversion SSH 配置/在 Windows 上将 Subversion 项目签出为 SYSTEM
【发布时间】:2012-12-02 13:21:30
【问题描述】:

我正在尝试通过 SVN+SSH 从 Windows Server 2003 机器上设置一个预定的 Subversion 提交作为一项任务。我希望以系统用户身份执行提交脚本。所以我猜,为了让它工作,我也需要将存储库签出为 SYSTEM - 但到目前为止我无法实现它。

我已经能够使用我自己的用户通过 SSH 实现上述目标。我做了以下事情:

  1. 我在本地 subversion 配置中添加了一个 [tunnels] 实体:

    ssh = plink.exe -i "C:/Keys/my_key.ppk"

  2. 将密钥添加到运行 Subversion 的服务器上的 authorized_keys 文件中

  3. 我使用如下脚本检查了存储库:

    svn co svn+ssh://user@server/path/to/repo/ C:\Local\Project\Path

我现在想为 SYSTEM 用户重现上述步骤,以便以后能够运行预定的提交。我面临的问题是我不知道如何将存储库签出为 SYSTEM,因为:

  1. 我不知道以 SYSTEM 身份签出存储库的语法
  2. 我不知道全局(或系统的)Subversion 配置存储在 Windows Server 2003 上的什么位置。我已经尝试过:C:\Documents and Settings\Default User\Application Data\SubversionC:\Documents and Settings\Administrator\Application Data\Subversion,但没有成功。

我还在某处读到我可能可以使用svn switch 来满足我的需求,但不知道如何将svn switch 用作SYSTEM。我也考虑过为 svn check-out 或 switch 编写脚本并将它们作为 SYSTEM 运行,但是我仍然需要全局 SVN 配置来添加 my_key.ppk

我希望上面的描述足够清楚。我已经为此苦苦挣扎了很长时间,并且自己总结起来也遇到了问题。任何提示表示赞赏。

【问题讨论】:

  • 我不明白为什么您需要以 SYSTEM 身份签出才能以 SYSTEM 身份提交。 ssh 用户名(user@server)不需要匹配 Windows 的用户名,恕我直言。 SYSTEM 唯一需要的是对工作副本的读/写访问权限。
  • Windows SYSTEM 用户拥有所有必要的权限。关键是,我不知道如何在 Windows Server 2003 中为 SYSTEM 用户设置 [tunnels] 配置,以便能够在命令行中使用 SVN+SSH 身份验证。关于您的第一个陈述:我也不明白为什么我需要以 SYSTEM 身份签出才能以 SYSTEM 身份提交,但这似乎是 Subversion SVN+SSH 的情况。或者我只是不知道正确的语法,如问题中所述。

标签: windows svn ssh windows-server-2003


【解决方案1】:

另一方面,这似乎并不完全偏离主题:https://serverfault.com/q/9325/122307

这不是您问题的真正答案,但它可能会解决您的问题:为什么不使用svn <command> --config-dir ARGsvn <command> --config-option ARG

您可以像这样指定配置文件/选项,从而能够设置 [隧道]。

【讨论】:

    【解决方案2】:

    @cxxl 真的回答了问题,当提到--config-dir。我只是试着解释一下问题

    我猜,为了让它工作,我需要以 SYSTEM 身份签出存储库

    错误和错误的猜测,因为 本地存储的用户身份验证数据在 SSH-auth 的情况下不用于执行 ssh 远程身份验证。每个用户的身份验证目录

    \%AppData%\Subversion\auth>dir /W
    ...
    [svn.simple]                [svn.ssl.client-passphrase]
    [svn.ssl.server]            [svn.username]
    ...
    

    仅包含存储凭据,用于 http|https|svn 和基于证书的客户端身份验证,nothing 用于 ssh 相关存储库

    即你在 LSA 脚本下执行的必须能够 * 读取工作副本文件(在任何其他真实本地用户下签出),可能写入(不记得对 .svn 目录权限的要求) * 读取并因此使用预定义和微调的 Subversion 配置文件(隧道部分),它可以是任何其他用户的配置

    PS:swn switch 更改工作副本存储库的链接 URL,与用户没有共同点

    【讨论】:

      猜你喜欢
      • 2014-01-29
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多