SSH协议服务器之支持读写操作
原创
©著作权归作者所有:来自51CTO博客作者行走的皮卡丘的原创作品,请联系作者获取转载授权,否则将追究法律责任
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 8月 16 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 8月 16 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/