centos 環境搭建git 服務器
首先yum安裝git
yum install git
查看git的版本
sudo git --version
服務器端創建一個git 用戶,專門來處理git服務,並為git用戶設置密碼
查看是否有git的用戶
id git
添加git用戶
useradd git
為git用戶分配密碼
passwd git
創建git倉庫
sudo mkdir -p /home/git/project.git
git初始化倉庫
sudo git init --bare /home/git/project.git
修改權限
chown -R git:git project/
客戶端克隆代碼
sudo git clone [email protected] ip :/home/git/project/
當第一次連接到目標 Git 服務器時會得到一個提示:
The authenticity of host ‘192.168.56.101 (192.168.56.101)‘ can‘t be established. RSA key fingerprint is SHA256:Ve6WV/SCA059EqoUOzbFoZdfmMh3B259nigfmvdadqQ. Are you sure you want to continue connecting (yes/no)?
選擇yes:
Warning: Permanently added ‘192.168.56.101‘ (RSA) to the list of known hosts.
客戶端創建ssh公鑰和私鑰
ssh-keygen -t rsa -C "[email protected]"
The key fingerprint is:
SHA256:hNE8psTlENbSbKPCswDfSafqWubaz8v8vzYD+pAbqGY [email protected]
The key‘s randomart image is:
+---[RSA 2048]----+
| .=O. |
|. [email protected] |
| o + =.*oo |
| o B o. |
| o + S |
| ..... |
| .+ +. . |
| E.+.+ + |
|*oo.B+ooo+ |
+----[SHA256]-----+
在/etc/ssh 打開sshd_config 並取消以下三行註釋
RSAAuthentication yes
PubkeyAuthentication yes
# The default is to check both .ssh/authorized_keys and .ssh/authorized_keys2
# but this is overridden so installations will only check .ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys
保存重啟ssh服務
systemctl restart sshd.service
由 AuthorizedKeysFile 得知公鑰的存放路徑是 .ssh/authorized_keys,實際上是 $Home/.ssh/authorized_keys,由於管理 Git 服務的用戶是 git,所以實際存放公鑰的路徑是 /home/git/.ssh/authorized_keys
在 /home/git/ 下創建目錄 .ssh
cd /home/git sudo mkdir .ssh chown -R git:git .ssh
將客戶端公鑰導入服務器端 /home/git/.ssh/authorized_keys 文件
ssh [email protected] ‘cat >> .ssh/authorized_keys‘ < ~/.ssh/id_rsa.pub
回到服務器端,查看 .ssh 下是否存在 authorized_keys 文件:
[[email protected] git]# cd .ssh [[email protected] .ssh]# ll 總用量 4 -rw-rw-r--. 1 git git 398 8月 28 20:08 authorized_keys
重要:
修改 .ssh 目錄的權限為 700
修改 .ssh/authorized_keys 文件的權限為 600
[[email protected] git]# chmod 700 .ssh [[email protected] git]# cd .ssh [[email protected] .ssh]# chmod 600 authorized_keys
禁止 git 用戶 ssh 登錄服務器
之前在服務器端創建的 git 用戶不允許 ssh 登錄服務器
編輯 /etc/passwd
找到:
git:x:502:504::/home/git:/bin/bash
修改為
git:x:502:504::/home/git:/bin/git-shell
此時 git 用戶可以正常通過 ssh 使用 git,但無法通過 ssh 登錄系統。
centos 環境搭建git 服務器