如何使用公钥/私钥对获取SVN结账?

时间:2008-10-10 16:24:44

标签: svn ssh key

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

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

我有一个带私钥的文件。如何获取此代码?

8 个答案:

答案 0 :(得分:48)

如果您只需要为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/

答案 1 :(得分:14)

将此条目添加到〜/ .ssh / config 文件中:

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

有关更多选项,see the ssh_config man page

答案 2 :(得分:8)

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

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

通过执行此操作验证您是否正确添加了密钥

ssh-add -l

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

答案 3 :(得分:5)

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

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

答案 4 :(得分:2)

以下是我通过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

答案 5 :(得分:2)

除了回答两个来自Eclipse 3.7和Subversive的屏幕截图。


General settings
输入用户名!(在拍摄屏幕截图之前我已经忘记了这一点)。 输入密码。


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


一张图片胜过千言万语。

答案 6 :(得分:1)

将私钥添加到~/.ssh/文件夹,然后运行ssh-agent $SHELL; ssh-add;,然后该网址的svn co应该有效。

答案 7 :(得分:0)

SVN_SSH="ssh -i /xxx/xxx/id_rsa" svn checkout svn+ssh://username@svn.xxx.com/data