私人Git遠(yuǎn)程倉(cāng)庫(kù)的進(jìn)階配置
- 關(guān)鍵字
Git
Linux
ssh
- 閱讀本文的必要條件:
- linux命令行的基本操作
- git 的基本使用
ssh免密登錄
-
本地端的準(zhǔn)備
- 生成密鑰
使用git bash 執(zhí)行以下命令
打開 用戶文件夾下/.ssh/id_rsa.pub,復(fù)制當(dāng)中的那行公鑰 備用cd ~ ssh-keygen -t rsa # 生成的密鑰代表你這臺(tái)電腦
- 生成密鑰
-
遠(yuǎn)程端(git倉(cāng)庫(kù)端的準(zhǔn)備)
- 如果是你自己的公鑰,那么你可以使用
ssh-copy-id [XX]@<IP> #在本地的終端操作 這里需要輸入密碼
- 如果你需要添加別人的密鑰到此遠(yuǎn)程服務(wù)器,那么你需要ssh登錄服務(wù)器后
vim ~/.ssh/authorized_keys # 編輯 加入其他人的密鑰,然后告知其他人登錄
- 如果是你自己的公鑰,那么你可以使用
須知
第一次使用密鑰免密登陸時(shí)會(huì)要求你將服務(wù)端的公鑰保存下來,此時(shí)輸入yes即可;
本地新建遠(yuǎn)程倉(cāng)庫(kù)
在本地新建遠(yuǎn)程倉(cāng)庫(kù)的含義是:在使用git-shell的基礎(chǔ)之上在遠(yuǎn)程服務(wù)器上新建一個(gè)倉(cāng)庫(kù),避免了管理員每次出現(xiàn)新項(xiàng)目是都需要管理員登錄管理員賬戶去新建一個(gè)空項(xiàng)目;從而方便大家;這在服務(wù)器搭建的初期階段十分有用處
-
為什么需要修改git用戶的默認(rèn)shell 為 git-shell
為了保證服務(wù)器的安全性,一般我們都會(huì)把git用戶的默認(rèn)ssh shell 更改為 git-shell ,這樣每次你操作 ssh 后就會(huì)立刻退出,而不能做其他的 類似于 ls mkdir 之類的操作,提高了安全性;但是與此同時(shí),你也只能從遠(yuǎn)程git倉(cāng)庫(kù)中clone/push/pull
修改默認(rèn) ssh shell:sudo vim /etc/passwd # 1. 找到git 用戶 # 2. 將git 用戶默認(rèn)的shell 由 '/bin/bash' 修改為 '/usr/bin/git-shell'
-
在本地操作初始化一個(gè)遠(yuǎn)程倉(cāng)庫(kù)
如果我們什么都不做,僅僅將默認(rèn)ssh 改為git-shell 當(dāng)我們登錄到ssh當(dāng)中時(shí):
$ ssh git@localhost fatal: Interactive git shell is not enabled. hint: ~/git-shell-commands should exist and have read and execute access. Connection to localhost closed.
系統(tǒng)提示:交互式 git shell 沒有 使能,提示:~/git-shell-commands 應(yīng)該存在且擁有讀和執(zhí)行的權(quán)限;
-
使能 交互式 git shell
- 登錄 sudo 權(quán)限的賬戶 或者 使用該git賬戶bash命令行進(jìn)行操作
# clone the project git clone https://github.com/KimAlittleStar/git-shell-init cd ./git-shell-init # config Interactive git-shell ./config.sh [username] [git repository path] # 第一個(gè)參數(shù)填寫用戶名,默認(rèn)值為當(dāng)前操作的用戶名 # 第二個(gè)參數(shù)填寫初始化倉(cāng)庫(kù)的目錄,你可以在根目錄新建一個(gè)目錄減少路徑長(zhǎng)度 默認(rèn)為/home/[username]/ sudo bash ./configure.sh git /home/git
-
使能 交互式 git shell