配對本地和服務器的密鑰
前提:服務器安裝好git工具和nginx服務器,本地安裝好git工具,配置好hexo
生成本地密鑰
本地終端運行命令ssh-keygen -t rsa
然後連續回車,會生成公鑰存儲到C…/user/.ssh文件夾裏,pub結尾的公鑰要用到
服務器增加git用戶並給其權限
$ yum install git #沒安裝git的運行命令安裝
$ adduser git #創建一個用戶git
$ sudo passwd git #設置git用戶密碼
$ chmod 740 /etc/sudoers #修改文件權限爲用戶可讀寫執行
$ vim /etc/sudoers #編輯文件
root ALL=(ALL) ALL #找到這裏,在下面添加git用戶的權限
git ALL=(ALL) ALL
$ chmod 400 /etc/sudoers //保存退出改回權限
創建密鑰文件
$ su git #切換git用戶
$ mkdir ~/.ssh #創建.ssh文件夾
$ vim ~/.ssh/authorized_keys #創建authorized_keys文件
# 它們是密鑰文件是隱藏的,文件管理器直接看不到,但是可以訪問/root/.ssh路徑來看到文件或者cd /root/.ssh ls來查找
# 然後將win10中生成的id_rsa.pub文件裏的公鑰複製到authorized_keys文件中,vim右鍵粘貼,不要用ftp管理器打開文件粘貼
$ chmod 600 /home/git/.ssh/authorized_keys #將文件設置爲可讀可寫
$ chmod 700 /home/git/.ssh #將該文件夾設置爲可自由訪問
測試git連接
本地終端輸入命令ssh -v git@服務器ip
,測試是否能不用輸入服務器git用戶密碼就可以連接(我是後來纔可以免密連接的)
第一步不成功也沒事,就是每次部署需要密碼來連接
服務器創建倉庫
$ mkdir /var/repo #創建一個倉庫目錄,後面存放git裸庫
$ chown -R git:git /var/repo #變更該目錄的所有者,注意是chown
$ chmod -R 755 /var/repo #讓該目錄權限開放,可讀寫執行
$ mkdir /var/www/hexo #創建一個目錄作爲網站根目錄存放網站靜態文件
$ chown -R git:git /var/www/hexo #變更該目錄的所有者爲git用戶
$ chmod -R 755 /var/www/hexo #開放權限
#nginx我用寶塔部署nginx直接創建該站點了,後期也可以方便管理站點
#也可以找到/etc/nginx的配置文件nginx.conf,設置裏面的網站根目錄
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /var/www/hexo;
index index.html index.htm;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {
}
建立git裸庫
$ cd var/repo
$ git init --bare hexoBlog.git #創建裸庫,但裏面不是沒有內容
$ vim /var/repo/hexoBlog.git/hooks/post-receive #在hooks目錄下新建一個新的鉤子文件 post-receive並vim編輯
#vim編輯(按i)然後粘貼下面兩句,window的粘貼模式可能會不一樣
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexoBlog.git checkout -f
#該鉤子的意思是當本地有提交到服務器時,會將文件放在網站根目錄
$ chown -R git:git /var/repo/hexoBlog.git/hooks/post-receive
$ chmod +x /var/repo/hexoBlog.git/hooks/post-receive
配置Hexo站點文件
滑到最下面
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: git@服務器IP:/var/repo/hexoBlog.git #這個裸庫單純用來連接
branch: master
寫在最後
這次部署流暢參照了下面這兩篇博文,上面筆記記得這麼詳細主要在於它們兩篇博客都有相同的錯誤——單詞寫錯,而且還是錯同一處…第二篇命令介紹寫得詳細,但在配對密鑰的步驟那裏好像錯了,這兩處錯誤害!掉了好些時間!
https://www.jianshu.com/p/0f9dfa9c141b
https://blog.csdn.net/weixin_41154636/article/details/99685965