1. 程式人生 > >git使用者限制ssh登入伺服器

git使用者限制ssh登入伺服器

伺服器額外的防範措施:

搭建git伺服器後通常會建立一個git賬戶,其它人共用這個賬戶來克隆或推送資料到git倉庫中,通常也只需要這個功能,但是如果不加限制,那麼其它人可以通過這個git賬戶登入到主機,那麼這樣是不安全的,所以需要加以限制,方法如下:
編輯/etc/passwd這個檔案,在檔案末尾可以找到類似這樣的行:

git:x:1002:1002::/home/git:/bin/sh      改為:       git:x:1002:1002::/home/git:/usr/bin/git-shell

把/bin/sh改為/usr/bin/git-shell,這樣git這個賬戶就只能用來克隆或者推送資料到git倉庫中了,而不能用它來登入到主機。
現在 git

 使用者只能用 SSH 連線來推送和獲取 Git 倉庫,而不能直接使用主機 shell。嘗試普通 SSH 登入的話,會看到下面這樣的拒絕資訊:

[[email protected] ~]# ssh [email protected]
[email protected]'s password: 
Last login: Wed Jun 13 21:52:02 2018
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Connection to 192.168.25.133 closed.

管理大量使用者使用git許可權:gitosis

在/home/git/.ssh檔案中有authorized_keys檔案,這個檔案裡邊存放了需要使用git專案的使用者的公鑰,也就是允許誰可以git你的專案

適用於開發者較少的情況,如果開發者數量達到幾百人的規模時,管理起來十分費力,每次增加或刪除使用者時都必須登入到伺服器上去,而且還缺少必要的許可權管理,因為使用者對所有在/home/git下的git專案都擁有讀寫許可權。


使用gitosis這個東西,gitosis是用來管理authorized_keys檔案和簡單連線限制的指令碼。新增、刪除使用者或設定許可權這些工作是通過管理一個特殊的git倉庫來實現的,你只需要在這個倉庫做好相應的設定,然後推送到伺服器上,gitosis就會隨之改變策略,聽起來不錯吧。