linux/ubuntu上自主搭建git服务器(客户端免密)
- 安装git
sudo apt-get install git
- 安装ssh
sudo apt-get install openssh-server openssh-client
- 创建git用户
sudo adduser git
(回车后除了输密码,其他一路回车)
- 客户端配置git基础信息
设置用户信息
`git config --global user.name "name"
`git config --global user.email "email@example.com"
查询配置信息
`git config --list
创建SSH Key
`ssh-keygen -t rsa -C "email@example.com"
一路回车
家目录下会生成.ssh目录,id_rsa存放私钥,id_rsa.pub存放公钥
-
创建证书,配置免密码登录
收集客户端的公钥即id_rsa.pub文件内容>>到服务器.ssh/authorized_keys文件中- 在git家目录下新建.ssh >
mkdir .ssh
- 在.ssh目录下新建authorized_keys文件 >
touch authorized_keys
- 配置客户端公钥,将客户端id_rsa.pub内容复制到服务器端authorized_keys文件中
- 设置目录,文件归属权>
chown -R git:git /home/git/.ssh
- 重点!!!来了:配置文件中开启服务,在/etc/ssh/sshd_config文件中去掉AuthorizedKeysFile %h/.ssh/authorized_keys前注释#号
- 在git家目录下新建.ssh >
-
服务器上初始化git仓库(裸仓库,只做交换共享使用)
指定目录下输入命令:
sudo git init --bare study.git
sudo chown -R git:git study.git
- 禁止git用户shell登录
编辑/etc/passwd
修改前
git:x:1001:1001:,,,:/home/git:/bin/bash
修改后
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
git-shell的路径通过`which git-shell 获得
- 克隆远程仓库>>可以正常使用了
git clone git@server:/路径/study.git