git 配置遠程倉庫
本文是為了使用 git 拉取和推送時,能夠免密同步遠程服務器
ps:
首先要有一臺遠程服務器
其次是遠程服務器和本地,都安裝了git
創建專屬用戶 git
使用 root 用戶創建
useradd git
設置用戶密碼
password git <you_password>
- 要輸入自己的密碼
- 輸入的密碼并不可見
- 需要重復輸入密碼進行確認
- 或者直接簡單粗暴地使用
echo "git:git_user_password" | chpasswd來設置密碼
切換到 git 用戶
su git
配置遠程倉庫
在遠程服務器上,選擇一個路徑作為倉庫目錄
本文以/home/git/git_store/my_project.git/為例
創建項目目錄
mkdir -p /home/git/git_store/my_project.git
跳轉到倉庫目錄
cd /home/git/git_store/my_project.git
將倉庫初始化為裸倉庫 (沒有編寫源代碼的工作區)
git init --bare
將倉庫初始化為裸倉庫 (直接指定目錄的方式)
git init --bare /home/git/git_store/my_project.git
檢查 git-receive-pack 和 git-upload-pack 兩個命令的快捷方式,避免推送和拉取時報錯
ll /usr/bin |grep git
如果沒有 git-receive-pack 和 git-upload-pack ,就使用 root 用戶,通過軟鏈接創建 (注意自己的 git 安裝目錄的位置)
ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
本地項目配置遠程
進入本地的 my_project.git 項目目錄
配置遠程倉庫的連接
git remote add origin git@192.168.1.244:/home/git/git_store/my_project.git
生成密鑰
ssh-keygen參數說明
使用 ssh-keygen 生成密鑰,幾個主要使用的參數
-t指定加密算法-C指定密鑰注釋 (相當于對密鑰添加一個名字)-f指定要保存的密鑰文件的路徑和文件名
生成密鑰
ssh-keygen -t rsa -C "test@qq.com" -f ./sign/my_git_rsa
然后一路回車,不要輸入密碼 (有密碼的私鑰,需要每次輸入私鑰口令,在 git 中如何配置免口令輸入,未搞定)
為了方便后續操作,這里的
.就是倉庫所在目錄
公鑰復制到服務器
確認公鑰鑒權
查看服務器 ssh 是否開啟公鑰鑒權
cat /etc/ssh/sshd_config | grep PubkeyAuthentication
出現 yes ,表示開啟了公鑰鑒權
PubkeyAuthentication yes
出現 no,表示未開啟公鑰鑒權
PubkeyAuthentication no
啟用公鑰鑒權
使用 root 用戶編輯配置文件
vim /etc/ssh/sshd_config
輸入下列內容,然后回車,搜索到該配置行,然后輸入 i 進入輸入模式,把 no 改成 yes 完成配置文件修改
/PubkeyAuthentication
重啟 ssh 服務,使配置生效 (使用的是 centos 7 的命令)
systemctl restart sshd
復制公鑰到遠程服務器
在倉庫目錄中,打開 git bash ,使用 ssh-copy-id 復制指定密鑰到遠程服務器
ssh-copy-id -i ./your_path/your_publich_key user@ip_address
打開 git bash
鼠標右鍵

ssh-copy-id 復制指定密鑰到遠程服務器
ssh-copy-id -i ./sign/my_git_rsa.pub git@192.168.1.244
配置本地倉庫使用的密鑰
在當前倉庫中,輸入
git config --local -e
進入文件后,在英文輸入法下,輸入 i ,進入輸入模式;在 [core] 下添加一行配置(指定 git 使用的私鑰)
sshCommand = ssh -i ./sign/my_git_rsa

驗證公鑰生效情況
在倉庫目錄,輸入 git pull 和 git push 都可進行驗證

浙公網安備 33010602011771號