Centos 搭建Git服務器 原

git服務器端:環境是Centos 7.5,Git是 1.8.3.1

git客戶端:windows7,Git

1.驗證系統是否有git,沒有則安裝

git --version驗證,沒有則yum -y install git

用rpm -qa | grep git可查看git安裝的軟件包

2.驗證是否有git用戶,沒有則添加

id git驗證,沒有則useradd git和添加密碼passwd git,輸2次git即可

3.創建git服務端版本倉庫

這裏我選用目錄爲/var/data/git/learngit.git

A:創建目錄:mkdir -p /var/data/git/learngit.git

B:初始化庫:git init --bare /var/data/git/learngit.git

C: Git 倉庫的 owner 修改爲 git用戶:cd /var/data/git和 chown -R git:git learngit.git/

4.客戶端下載遠程倉庫

windows系統上我選用目錄/d/IdeaProjects/(d爲D盤)爲操作目錄

啓動客戶端 Git Bash.exe,然後進入該目錄執行遠程clone操作,如下命令

 git clone [email protected]:/var/data/git/learngit.git

第一次遠程連接會提示如下內容,輸入yes即可

  1. The authenticity of host ‘192.168.3.10 (192.168.3.10)‘ can‘t be established.

  2. ECDSA key fingerprint is SHA256:HEaAUZgd3tQkEuwzyVdpGowlI6YKeQDfTBS6vVkY6Zc.

  3. Are you sure you want to continue connecting (yes/no)?

提示輸入密碼時輸入服務器端的git的密碼git即可

       然後該目錄下會出現一個名爲learngit的文件夾,它就是本地倉庫(和learngit.git對應),進入該目錄執行vi test.txt命令,輸入內容,然後git add test.txt和git commit -m "add test.txt"是添加進本地倉庫,執行git push -u origin master(-u是第一次遠程添加加上,後續不用加了就,origin是默認的遠程庫名稱,master是當前主分支,開始默認這一個,可自行添加)即可推送到遠程倉庫中 。

Git還可以把本地的公鑰添加到Git服務器,就可以免去每次遠程操作都輸入密碼了

5.生成公私鑰,添加到服務器

以下是客戶端創建ssh私鑰和拷貝的過程,如果您有私鑰越過創建私鑰的過程。

第一步:創建客戶端的ssh私鑰和公鑰

檢查是否已經擁有ssh公鑰和私鑰:進入用戶的主目錄。

用戶主目錄:
Windows系統:C:\Users\用戶名(我用的是這個)
Linux系統:/home/用戶名
Mac系統:/Users/用戶名

然後查看是否有.ssh文件夾,此文件夾下是否有如文件

id_rsa和id_rsa_pub(這個是所需的)

如果沒有,那麼用ssh-keygen創建ssh的私鑰。

創建公私鑰 ssh-keygen -t rsa -C "[email protected]"

-t rsa表示密鑰類型是rsa,-C選項用於添加comment,可以設置成自己的Email地址

提示passphrase時不需要設置,三次回車就行。

第二部:公鑰添加到服務器中

A:首先在服務中做些設置,vi /etc/ssh/sshd_config文件做如下修改

開啓RSA認證,將前面的#去掉,並確保如下配置:

RSAAuthentication yes #這個沒配置也可以,不行的話你記加上

PubkeyAuthentication yes #這個把前面#註釋去掉就行

AuthorizedKeysFile .ssh/authorized_keys #這個默認打開的

修改保存完後重啓服務service sshd restart(如果不行可執行systemctl restart sshd)

B:然後cd /home/git目錄下,創建.ssh文件夾mkdir .ssh,再創建authorized_keys文件(與上面對應)touch authorized_keys

C:接下來windows系統中進入客戶端 Git Bash.exe,把剛纔創建的公鑰id_rsa.pub遠程複製到/home/git/.ssh/目錄下

命令:scp /c/Users/win7/.ssh/id_rsa.pub [email protected]:/home/git/.ssh/

輸入密碼行了

D:最後回到服務端進入/home/git/.ssh/目錄下

執行:cat id_rsa.pub >> authorized_keys就會複製成功。(其實手動複製也可以,但是不推薦,容易出錯)

現在再在客戶端Git Bash.exe做克隆推送等操作就不用密碼了

6.禁用git用戶的shell登錄

出於安全考慮,第2步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成。找到類似下面的一行:

1

git:x:1001:1001:,,,:/home/git:/bin/bash

最後一個冒號後改爲:

1

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣,git用戶可以正常通過ssh使用git,但無法登錄shell,因爲我們爲git用戶指定的git-shell每次一登錄就自動退出。

 

來自:https://blog.csdn.net/qq_29175301/article/details/81207636

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章