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 登錄的話,會看到下面這樣的拒絕信息:

[root@localhost ~]# ssh git@192.168.25.133
git@192.168.25.133'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就會隨之改變策略,聽起來不錯吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM