Linux系统下搭建git的SSH服务器
趁着双十一的时候,阿里云服务器免费使用,就申请了一个.然后尝试搭建了一下git远程仓库,现在马上到期了-_-,来篇博客记录一下.本教程也适用于OS X;
以下是在服务器端操作的:
-
第一步:
- 如果没安装过git,那就安装一下(呵呵哒了),使用终端命令:sudo apt-get install git ; 第二步:
- 创建git用户:sudo adduser git; 第三步:
- 选定一个目录为git仓库.使用命令cd xxx(文件夹名)进入到相应目录下,执行命令:sudo git init –bare sample.git .
OK了,创建好了,是不是so easy,接下来是具体配置.
-
第一步:
- 为开发人员配置免登陆.为了方便,不可能每次提交的时候都输入一遍密码,那得多烦,所以需要配置此项.进入到.ssh文件夹下面,有一个名为”authorized_keys”的文件,里面存放的即为秘钥.收集所有开发者的id_rsa.pub文件(下面会介绍怎么生成这个文件),将此文件内容写到authorized_keys文件中,一行一个.使用vi编辑authorized_keys:vi authorized_keys .然后按 i 进入编辑模式,写好之后esc退出编辑状态 , :wq保存退出. 第二步:
- 仓库创建好了呢,当然是为了让别人用的,但是你不能让别人通过SSH能直接登录到你的服务器吧,所以,把owner改为git,执行命令:sudo chown -R git:git sample.git . 第三步:
- 修改你的所有开发者登录你的服务器后的权限.修改passws文件内容,文件在/etc/passwd , 同样使用vi编辑(方法请看第一步).修改 :home/git:/bin/bash 为 :home/git:/usr/bin/git-shell . 第四步:
- 配置OK之后,开发人员即可使用命令:git clone git@xxx.xxx.xxx.xxx:~/xxx/sample.git 克隆 ,或者使用命令:git add remote origin git@xxx.xxx.xxx.xxx:~/xxx/sample.git 给本地仓库制定远程仓库.
下面介绍开发者端如何找到自己的id_rsa.pub文件(OS X为例)
-
第一步:
- 在个人文件夹下面,有一个名为 .ssh 的隐藏文件夹 , 终端查看隐藏文件命令: ls -a , 如果有 cd .ssh 进入该文件夹 , 命令: ls ,查看是否有免认证登陆的密钥信息,一般为一对文件: id_rsa和id_rsa.pub; 如果有 return; 如果没有 goto 第二步; 第二步:
- 使用命令:ssh-keygen -t rsa -C “你的邮箱”,会生成一对秘钥文件.然后填入秘钥信息(可以什么都不填); 返回第一步;