oEveryman 2012-04-10
svn+ssh原理简介
网上大多数的文章都是在介绍如何在windows环境下配置Subclipse,使用之能访问svn+ssh协议的Reposiotry,这里介绍一下在linux环境下如何实现。
导入密钥,登录ssh主机
下面,我们越过服务器的密钥生成和配置工作,专注地看一下linux客户端如何使用Subclipse访问svn+ssh主机。
作为一般的开发人员,如果你的团队使用svn+ssh协议搭建Reposiotry,那么,当你加入团队准备开发时,一定会有人发给你一个私钥文件和一个密码短语(passphrase),对于私钥文件,可能是有两种格式,你必须知道你手上的是哪一个格式,这两种格式是分别是:
1. 以.ppk结尾的putty格式的私钥文件(putty private key),这是一种文本文件,其内容大概如下:2. 另一种也是纯文本文件,无固定后缀名,一般是.txt或是无后缀,这是服务器端使用openssh生成的原始的openssh格式的私钥文件,其内容大概如下:
在linux环境下,如里你得到私钥文件是后者,那么可以直接在linux下使用,如果你得到的是前者,一个ppk文件,那么你需要使用putty将其转换为openssh格式,转换方法非常简单:打开puttygen.exe -> conversations -> import key -> 选中你的ppk文件后回到主窗口 -> conversations -> export OpenSSH key 即可。假定我们已经拿到了或是转换好了openssh格式的私钥,接下来,我们来看如何使用这个文件登录ssh主机。假如你的账号是user,目录主机是svn.abc.com,使用ssh命令,我们可以用两种方式登录:
方式一:显示地使用 -i 参数指定私钥文件:
ssh -i /path/to/private-key/ [email protected]
中途提示passphase,输入passphase即可。
方式二:ssh默认会自动从用户home目录下的.ssh文件夹下搜索私钥文件,因此,更为方便的做法是将私钥文件放到.ssh文件夹下。(如果你的home文件夹下没有.ssh文件夹,请先通过mkdir ~/.ssh创建)。放置在.ssh文件夹的私钥文件的命名也是有规定的,查看ssh命令说明,我们看到主要的私钥文件按加密方式规定了默认文件名:复制完成后,直接使用:
看能否登录,如果功能登录表示私钥已经放置到正确位置。如果出现问题,可以追加参数 -vvv 查看日志。首先执行:
$ ssh-agent
然后再执行:
$ ssh-add
系统会提示你为指定的私钥输入passphase,输入后,再使用subcipse进行检出/入时就不会再要求输入passphrase了。
Subclipse 的详细介绍:请点这里
Subclipse 的下载地址:请点这里