【问题标题】:How do I get a SVN checkout using a Public/Private key pair?如何使用公钥/私钥对获得 SVN 结帐?
【发布时间】:2010-09-16 13:38:11
【问题描述】:

我必须检查一些代码并运行它。我有网址:

svn+ssh://myuser@www.myclient.com/home/svn/project/trunk

我有一个包含他们私钥的文件。我该怎么做才能获得此代码?

【问题讨论】:

  • 你使用的是什么操作系统?
  • Mac OS X Leopard 本地,但这真的应该在 RH ES4 机器上运行。
  • 我也得到了“-bash: svn+ssh://... blah blah No such file or directory”,尽管我已经安装了 svn 和 ssh 并且一直在使用它们。我可以在 Eclipse 中使用 Subclipse 插件(我也经常使用)吗?

标签: svn ssh key


【解决方案1】:

如果您只需要为 svn 使用自定义密钥,以下方法将起作用:

SVN_SSH="ssh -i /path/to/key_name"

export SVN_SSH

svn commands

http://labs.kortina.net/2010/01/30/svn-checkout-with-private-key-over-ssh/

【讨论】:

  • 请注意,我总是使用完整路径作为密钥的路径。
  • 路径现在是绝对路径!
  • 只有一个repository server 使用时可用,多个repository server 需要使用~/.ssh/config 文件
  • 适用于 svn+ssh 托管项目的 Maven 发布目标。
【解决方案2】:

将此条目添加到您的 ~/.ssh/config 文件中:

Host YOUR_SERVER
IdentityFile YOUR_PRIVATE_KEY_PATH # (ex: ~/.ssh/rsa)
User USER_NAME

更多选项,see the ssh_config man page

【讨论】:

    【解决方案3】:

    只需使用 ssh-add 命令(它会询问您的密码,这是您创建此公钥私钥对时使用的密码)。

    ssh-add PATH_TO_YOUR_PRIVATE_JEY
    e.g. ssh-add ~/.ssh/myPrivateKey.key
    

    通过这样做验证您是否正确添加了密钥

    ssh-add -l
    

    这将列出它正在使用的所有身份文件。

    【讨论】:

      【解决方案4】:

      私钥在客户端计算机上,通常命名为~/.ssh/id_rsa~/.ssh/id_dsa~/.ssh/identity,具体取决于 SSH 版本和密钥类型。但是,您可以只使用ssh -i path/to/private.key

      这是假设相应的公钥存在于服务器上的~/.ssh/authorized_keys 中,并且您的本地计算机正在运行 OpenSSH 客户端。如果您在 Windows 上使用 PuTTY,只需打开 Pageant 程序,然后通过 GUI 导入密钥。

      【讨论】:

      • 这个问题要求的是svn,而不是ssh
      【解决方案5】:

      以下是我用来通过 svn+ssh 从 Mac OS X 命令行连接到我的服务器的步骤:

      在服务器上:

      ssh-keygen -b 1024 -t dsa -f mykey   (creates mykey and mkey.pub files)
      

      mykey.pub的内容复制到~/.ssh/authorized_keys(如果authorized_keys文件不存在则创建)

      下载mkey到你的本地机器并运行:

      chmod 600 mkey  (the next step won't run otherwise)
      svn-add mkey  (enter your passphrase)
      

      使用 ssh 从您的 svn 服务器结帐:

      svn co svn+ssh://user@server.com/repos/path
      

      从您的服务器中删除 mkey 和 mkey.pub

      【讨论】:

        【解决方案6】:

        除了答案之外,还有来自 Eclipse 3.7 和 Subversive 的两个屏幕截图。



        输入用户名!(我在截屏之前忘记了这个)。请勿不要输入密码。


        如果您的私钥受密码保护,请输入密钥密码。


        一张图胜过千言万语。

        【讨论】:

          【解决方案7】:

          将私钥添加到您的~/.ssh/ 文件夹,然后运行ssh-agent $SHELL; ssh-add;,然后该URL 的svn co 应该可以工作。

          【讨论】:

          • 你的私钥不要进入~/.ssh/config。
          • 糟糕,你完全正确,应该是authorized_keys
          【解决方案8】:
          SVN_SSH="ssh -i /xxx/xxx/id_rsa" svn checkout svn+ssh://username@svn.xxx.com/data
          

          【讨论】:

            猜你喜欢
            • 2013-09-12
            • 2014-02-16
            • 2017-04-02
            • 2012-01-02
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-03-27
            • 1970-01-01
            相关资源
            最近更新 更多