搭建Git服務器

今天遇到將Linux配置成GitHub服務器,用遠程登錄訪問服務器clone/push工程。記錄SSH的學習。

Linux CentOS安裝SSH

  1. Linux安裝
[CentOS] yum install ssh
[ubuntu] sudo apt-get install ssh
  1. 登錄Linux系統,打開terminal
[CentOS]rpm -qa | grep ssh

3.開啓/關閉SSH服務,SSH服務一般叫做SSHD

service sshd start
service sshd restart
service sshd stop
  1. 查看是否啓動22號端口
netstat -antp | grep sshd

注意看ssh啓動22號端口處於監聽狀態才能連接這臺服務器

  1. 設置SSH服務爲開機啓動
chkconfig sshd on

用本機連接Linux服務器

  1. 無參數運行ssh
xiejiangqiongdeMacBook-Pro:~ cc$SSH 192.168.232.150
  • 默認情況ssh會嘗試用當前用戶作爲當前用戶名來連接,上面這個用使用cc來登錄192.168.232.150的Linux機器,但是如果服務器上沒有cc這個用戶,就沒法登了呀(這也是我不管嘗試我的什麼密碼都登不上去的原因)
  • 指定ssh的登錄用戶
ssh -l root 192.168.232.150
ssh root@192.168.232.150

輸入服務器root的密碼就可以登錄了。
修改SSH默認端口22的操作和對數據壓縮傳送的操作

搭建Git服務器

  1. 安裝git
 yum install git
  1. 創建git用戶,設置用戶密碼
sudo adduser git
passwd git 

操作結果

  1. 初始化Git倉庫
mkdir /srv/sample.git
sudo git init --bare sample.git

初始化之後的結果
其實這樣就可以在本機上將工程remote到Linux服務器上了
本機克隆服務器上的工程
當前目錄下生成sample的文件夾就是從服務器上clone的工程,之後就跟在GitHub上託管是一樣的了。

作爲GitHub託管服務器的設置

  1. 創建證書登錄
    收集所有需要登錄的用戶的公鑰,本機上的id_rsa.pub 把所有公鑰導入到/home/git/.ssh/authorized_keys 文件裏

    -在Linux系統上安裝git指令,默認創建了/home/git

    ls -a

    並沒有發現.ssh 文件呀
    找.ssh呀
    他孃的,我真奔潰,那就把本機的id_rsa.pub 放到找到的第二行的那個文件裏吧,好像也沒啥作用,呵呵噠,那就在/home/git 裏創建一個.ssh 文件夾在 touch authorized_keys 放進去吧
    恩,可以的,效果就是用git用戶克隆,不需要輸入git用戶連接服務器的密碼。所以之前的密碼設置那一步可以不需要。

    ssh git@192.168.232.150

    也不需要輸入密碼了。這個倒挺奇怪的。

  2. 禁用shell登錄
    爲啥要這樣做呢

    ssh git@192.168.232.150

    結果就是:
    [git@hadoop1 ~]$
    用這個用戶登錄的Linux服務器,這樣登了git用戶的人就可以任意修改/srv/sample這個文件了。
    禁用shell登錄

vim /etc/passwd

git:x:500:500::/home/git:/bin/bash
改爲
git:x:500:500::/home/git:/usr/bin/git-shell
git用戶可以正常通過ssh使用git,但無法登錄shell,這句是爲git用戶指定的git-shell每次已登錄就自動退出。

  1. Git倉庫純粹是爲了共享,所以不讓用戶直接登錄到服務器上去修改工作區,並且服務器上的Git倉庫通常都已.git 結尾,把owner改爲git
sudo chown -R git:git sample.git

總結

  1. 搭建Git服務器和本機連接服務器的方法,挺清楚的了把
  2. 方便管理公鑰和控制權限用Gitosis
  3. 將mac的遠程連接關掉,還是可以連接用ssh指令連接服務器的,可能關掉不允許別的機器連我的機器吧。算是一個認知的糾正。

通過搭建我的Git服務器,學習了一下ssh和複習了一下Linux命令

  • netstat -antp | grep ssh
  • ifconfig
  • rmdir 刪除一個目錄
    挺小的知識,熟能生巧,經常複習,望早日變得厲害~
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章