题
我必须检查一些代码并运行它。我有网址:
svn+ssh://myuser@www.myclient.com/home/svn/project/trunk
我有一个包含他们私钥的文件。我该怎么做才能得到这个代码?
解决方案
私钥在客户端机器上运行,通常命名为〜/ .ssh / id_rsa
,〜/ .ssh / id_dsa
或〜/。 ssh / identity
取决于SSH版本和密钥类型。但是,您只需使用 ssh -i path / to / private.key
。
这假设在〜/ .ssh / authorized_keys
中服务器上存在相应的公钥,并且本地计算机正在运行OpenSSH客户端。如果您在Windows上使用PuTTY,只需打开Pageant程序,然后通过GUI导入密钥。
其他提示
如果您只需要为svn使用自定义键,则以下内容将起作用:
SVN_SSH =" ssh -i / path / to / key_name"
导出SVN_SSH
svn commands
将此条目添加到〜/ .ssh / config 文件中:
Host YOUR_SERVER
IdentityFile YOUR_PRIVATE_KEY_PATH # (ex: ~/.ssh/rsa)
User USER_NAME
有关更多选项,请查看ssh_config手册页。
只需使用ssh-add命令(它会询问您的密码,这是您在创建此公私钥对时使用的密码)。
ssh-add PATH_TO_YOUR_PRIVATE_JEY
e.g. ssh-add ~/.ssh/myPrivateKey.key
通过执行此操作验证您是否正确添加了密钥
ssh-add -l
这将列出它正在使用的所有身份文件。
以下是我通过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
除了回答两个来自Eclipse 3.7和Subversive的屏幕截图。
输入用户名!(在拍摄屏幕截图之前我已经忘记了这一点)。 不输入密码。
如果您的私钥受密码保护,请输入密钥密码。
一张图片胜过千言万语。
将私钥添加到您的 ~/.ssh/
文件夹然后运行 ssh-agent $SHELL; ssh-add;
, ,然后是 svn co
该 URL 应该可以工作。
SVN_SSH="ssh -i /xxx/xxx/id_rsa" svn checkout svn+ssh://username@svn.xxx.com/data