Ubuntu Server搭建Git服务器

SSH协议是通过公钥和私钥来进行服务器的授权管理,是git的读写操作的标准协议。

假设cglab以服务器管理员账号,labserver为主机名。

1. 首先在linux server服务器安装openssh

$sudo apt-get install openssh-server

2. SSH的公钥与私钥,所生成的公钥可以用不同的用途,比如下面生成的id_rsa.pub公钥用作shell登陆,而gitadmin.pub用作git访问。

(1)创建公钥和私钥

$ssh-keygen    //该操作是在客户端,

该命令会在用户主目录下创建 .ssh 目录,并在其中创建两个文件:

l  id_rsa, 私钥文件。是基于 RSA 算法创建。该私钥文件要妥善保管,不要泄漏。

l  id_rsa.pub, 公钥文件。和 id_rsa 文件是一对儿,该文件作为公钥文件,可以公开。

创建了自己的公钥/私钥对后,就可以使用下面的命令,实现无口令登录远程服务器,即用公钥认证取代口令认证。

$ssh-keygen –f~/.ssh/gitadmin  //该命令创建一个指定名字为gitadmin的公私钥文件对。

(2)将公钥上传到服务器

$scp ~/.ssh/gitadmin.pubcglab@labserver:/tmp/ //上传到服务器,用作gitolite访问,具体用法参见下篇

$ scp ~/.ssh/id_rsa.pubcglab@labserver:/tmp/  //上传到服务器,用作shell访问

(3)将上传的公钥,根据需要用作不同用途

$ssh cglab@labserver    //以cglab账号登陆服务器

cglab@labserver:~$sudo ssh-copy-id –i /tmp/id_rsa.pubgitadmin@labserver  //加入到SSH登陆身份gitamdin,用作shell访问

(4)SSH主机别名

回到客户端,在~/.ssh/下创建SSH主机别名,以方便登陆服务器访问shell用。

$vi ~/.ssh/config

其内容为:

host admin

user gitadmin  //登陆到服务器所用的身份验证

hostname labserver  //服务器主机名

port 22

identityfile ~/.ssh/id_rsa  //所用的公私钥对,在此用的是id_rsa

(5)通过SSH登陆服务器

$ssh gitadmin  //使用别名,以服务器账号gitadmin身份登陆服务器,登陆shell哟。

$ssh gitadmin@labserver //将用默认的id_rsa来认证,可以登陆shell

相关推荐