SSH协议服务器之支持读写操作_git

SSH协议服务器之支持读写操作

1 创建基于密码验证的SSH协议服务器

[root@git_server ~]#  git init --bare /var/lib/git/base_ssh

2 客户端访问的方式

[root@client ~]# git clone root@192.168.2.100:/var/lib/git/base_ssh
正克隆到 'base_ssh'...
root@192.168.2.100's password:
warning: 您似乎克隆了一个空版本库。
[root@client ~]# rm -rf base_ssh

3 客户端生成SSH密钥,实现免密码登陆git服务器

[root@client ~]# ssh-keygen -f /root/.ssh/id_rsa -N ''

[root@client ~]# ssh-copy-id 192.168.2.100

[root@client ~]# git clone root@192.168.2.100:/var/lib/git/base_ssh
正克隆到 'base_ssh'...
warning: 您似乎克隆了一个空版本库。

[root@client ~]# cd base_ssh/

[root@client base_ssh]# echo 123 > a.txt
[root@client base_ssh]# git add .
[root@client base_ssh]# git commit -m "add a.txt"
[master(根提交) 409bab6] add a.txt
1 file changed, 1 insertion(+)
create mode 100644 a.txt
[root@client base_ssh]# git push
Counting objects: 3, done.
Writing objects: 100% (3/3), 208 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To root@192.168.2.100:/var/lib/git/base_ssh
* [new branch] master ->

4 Git协议服务器

4.1 安装git-daemon软件包

[root@git_server ~]#  yum -y install git-daemon

4.2 创建版本库

[root@git_server ~]# git init --bare /var/lib/git/base_git

4.3 修改配置文件,启动git服务(实现读写)

[root@git_server ~]# cat /usr/lib/systemd/system/git@.service  #查看
[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)

[Service]
User=nobody
ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose
StandardInput=socket
#备注:默认git配置为只读服务器,如果需要读写,则需要修改git@.service配置文件,在git-daemon命令后面添加--enable=receive-pack参数即可。
#另外还需要注意仓库目录的权限问题。

[root@git_server ~]# cat /usr/lib/systemd/system/git@.service
[Unit]
Description=Git Repositories Server Daemon
Documentation=man:git-daemon(1)

[Service]
User=nobody
ExecStart=-/usr/libexec/git-core/git-daemon --base-path=/var/lib/git --export-all --user-path=public_git --syslog --inetd --verbose --enable=receive-pack
StandardInput=socket

[root@git_server ~]# ll /var/lib/git/base_git/ -d
drwxr-xr-x. 7 root root 119 816 00:23 /var/lib/git/base_git/
[root@git_server ~]# chmod -R 777 /var/lib/git/base_git/
[root@git_server ~]# ll /var/lib/git/base_git/ -d
drwxrwxrwx. 7 root root 119 816 00:23 /var/lib/git/base_git/

[root@git_server ~]# systemctl restart git.socket
[root@git_server ~]# systemctl stop firewalld.service
[root@git_server ~]# setenforce 0

4.4 客户端访问方式

[root@client ~]# git clone git://192.168.2.100/base_git
正克隆到 'base_git'...
warning: 您似乎克隆了一个空版本库。

5 HTTP协议服务器(只读操作的服务器)

5.1 安装gitweb、httpd软件包

[root@git_server ~]# yum -y install httpd gitweb

5.2 修改配置文件,设置仓库根目录

[root@git_server ~]# sed -n  "11p" /etc/gitweb.conf  #在第11行添加
$projectroot = "/var/lib/git";

5.3 创建版本仓库

[root@git_server ~]#  git init --bare /var/lib/git/base_http

5.4 启动httpd服务器

[root@git_server ~]# systemctl start httpd

浏览器 访问 ​​http://192.168.2.100/git/​

SSH协议服务器之支持读写操作_服务器_02


SSH协议服务器之支持读写操作_版本库_03