如何在Linux实现Subclipse访问svn+ssh协议的Repository
来源:互联网 发布:淘宝怎么设置类目 编辑:程序博客网 时间:2024/06/06 20:34
网上大多数的文章都是在介绍如何在windows环境下配置Subclipse,使用之能访问svn+ssh协议的Reposiotry,这里介绍一下在linux环境下如何实现。
简单地说,svn+ssh是以ssh通道建立SVN通信的。一般搭建svn+ssh类型的repository,都是在Linux服务器上通过ssh-keygen生成两把钥匙,一把公钥,一把私钥,公钥放置在服务器端,私钥放在客户端,持有私钥的客户端用户通过ssh通道,向服务器发出连接请求,服务器要求输入linux系统用户的密码短语(passphrase),如果用户密码短语正确,再检验用户手上的私钥和服务器上的公钥是否配对,如果配对,就通过请求;否则提示错,拒绝用户请求。关于如何在Linux服务器上搭建SVN+SSH协议的Reposiotry,请参考:http://jimmyg.org/blog/2007/subversion-over-svnssh-on-debian.html ,该文给出出非常详细的说明。
导入密钥,登录ssh主机
下面,我们越过服务器的密钥生成和配置工作,专注地看一下linux客户端如何使用Subclipse访问svn+ssh主机。
作为一般的开发人员,如果你的团队使用svn+ssh协议搭建Reposiotry,那么,当你加入团队准备开发时,一定会有人发给你一个私钥文件和一个密码短语(passphrase),这里插句题外话,使用ssh-keygen和putty可以生成一对密钥:公钥和私钥,有时候这两种密钥的使用方经常会被弄混,我们可以这样理解:谁想访问远程主机谁负责创建密钥,这样才是安全可靠做法对吧?那好,此时私钥,公钥就区分出来了,自己留下的就是私钥,分发给远程主机的就是公钥了。再次简单总结就是:谁想访问对方,谁创建密钥,私钥自留,公钥给对方!这也是为什么一般一台机器只有一个私钥的原因,因为一个私钥就足够了,想访问哪个主机,就把公钥拷贝到哪个主机上,本机只用那一个私钥。 对于私钥文件,可能是有两种格式,你必须知道你手上的是哪一个格式,这两种格式是分别是:
2. 另一种也是纯文本文件,无固定后缀名,一般是.txt或是无后缀,这是服务器端使用openssh生成的原始的openssh格式的私钥文件,其内容大概如下:
假定我们已经拿到了或是转换好了openssh格式的私钥,接下来,我们来看如何使用这个文件登录ssh主机。假如你的账号是user,目录主机是svn.abc.com,使用ssh命令,我们可以用两种方式登录:
方式一:显示地使用 -i 参数指定私钥文件:
ssh -i /path/to/private-key/ user@svn.abc.com
中途提示passphase,输入passphase即可。
~/.ssh/identity
~/.ssh/id_dsa
~/.ssh/id_ecdsa
~/.ssh/id_rsa
Contains the private key for authentication. These files contain sensitive data and should be readable
by the user but not accessible by others (read/write/execute). ssh will simply ignore a private key
file if it is accessible by others. It is possible to specify a passphrase when generating the key
which will be used to encrypt the sensitive part of this file using 3DES.
假如我们得到的私钥是使用rsa加密的,使用如下命令将密钥拷贝到指定位置:
scp /path/to/private-key/ ~/.ssh/id_rsa
复制完成后,直接使用:
ssh user@svn.abc.com
配置subclipse,使之能够访问svn+ssh的Repository
这一步非常简单,和windows上的做法一样,并不需要subclipse做任何配置,只要添加一个环境变量:SVN_SSH就可以了,但是和网上一些文章所提到的只需要将SVN_SSH设定为一个指定私钥文件的ssh命令,如:
export SVN_SSH="ssh -i /path/to/private-key/
不同的是,在我的环境下,必须设定登录用户名和主机才有效,即,我的SVN_SSH是这个样子:
export SVN_SSH="ssh user@svn.abc.com"
没有显示指定私钥文件是因为它已放置到默认位置。
SVN_SSH环境设置好以后,重新登录系统,打开eclipse,使用subclipse新建svn+ssh类型的repository就可以访问了。
使用ssh-agent和ssh-add缓存密码短语passphrase
使用subclipse成功访问vn+ssh类型的repository后,一个问题就是每次操作都需要输入passphrase,非常繁琐。在windows下,可以使用putty的pageant缓存passphrase,在windows下,使用的是ssh-agent和ssh-add
首先执行:
$ ssh-agent然后再执行:
$ ssh-add
系统会提示你为指定的私钥输入passphase,输入后,再使用subcipse进行检出/入时就不会再要求输入passphrase了。
- 如何在Linux实现Subclipse访问svn+ssh协议的Repository
- SVN+SSH协议工作方式全解析,以Sourceforge为例讲解如何在Windows下配置TortoiseSVN和Subclipse访问SVN+SSH协议的Repository
- 如何在局域网内使用mac通过SSH协议远程访问linux
- 如何在本机配置自己的SVN Repository
- 如何在Ubuntu 9.10安装subclipse SVN插件
- 如何在Eclipse下安装SVN插件——subclipse
- 如何在Eclipse下安装SVN插件——subclipse以及安装svn常出现的错误总结
- 在Linux中配置ssh密钥,在Git中使用SSH协议访问Github
- 如何删除Eclipse subclipse中记住的SVN用户名密码
- 如何删除Eclipse subclipse中记住的SVN用户名密码
- 如何彻底删除eclipse的SVN/Subclipse插件
- 如何彻底删除eclipse的SVN/Subclipse插件
- 如何删除Eclipse subclipse中记住的SVN用户名密码
- 个人源码管理:如何在本机配置自己的SVN Repository (图解)
- 个人源码管理:如何在本机配置自己的SVN Repository (图解)
- Linux 搭建svn服务器+ssh访问
- ssh-keygen+ssh-copy-id 在linux下实现ssh无密码登录访问
- ssh-keygen+ssh-copy-id 在linux下实现ssh无密码登录访问
- C#中串口通信编程
- 虚拟机下在图形模式和命令行模式之间切换
- 当Repeater1中要合并上下行的时候
- IKE SA和IPSec SA的区别
- Openssl-MD5
- 如何在Linux实现Subclipse访问svn+ssh协议的Repository
- POJ-3681(搜能包住m个点的最小矩形面积)
- java基础视频25days(毕老师)学习日志(day20、day21)
- 在编译linux内核时驱动程序的时候出现“不匹配目标模式”
- 情报分析里的哲学思考
- HttpClient的使用
- TEA加密工具
- Ibatic Cache 使用实例
- blackfin u-boot