Gitlab自動部署之三:Linux免密登入

大猹子發表於2019-04-19

前言

公司前端大佬因為某些原因離職了,走的比較匆忙,自己之前一直很少接觸這方面的東西,一直都是一知半解。這兩天我一邊學,一邊動手搭建,同時記錄整個搭建過程。

這是一系列文章,從搭建 Gitlab 到 安裝、註冊Gitlab-runner 再到二者結合去部署一個簡單的專案,通過這幾篇文章,你將學會如何在 Gitlab 上自動化打包部署自己的專案。

系列文章一共有四篇,包括:

  1. 如何在阿里雲上安裝Gitlab
  2. 安裝GITLAB-RUNNER
  3. LINUX的免密登入
  4. 使用GITLAB-RUNNER部署GITLAB的專案

由於自己一直做的是前端,對於Linux我不算熟練,如有錯誤的地方,請大家指出。

原文地址:Linux免密登入

這篇是系列的第三篇,這一篇比較簡單,我們會弄一下Linux免密登入,這個我們在接下來的工作中會用到。

準備工作:

一臺Linux伺服器

一臺電腦(我的是windows 10系統)

Step1 windows上生成 ssh key

生成ssh key

ssh-keygen -t rsa -C "youremail@example.com" # 這裡替換為你的郵箱
複製程式碼

進入ssh目錄

cd ~/.ssh
複製程式碼

檢視所有檔案

ls -a 
# 可以看到 id_rsa  id_rsa.pub
複製程式碼

檢視公鑰內容(注意是.pub結尾的公鑰檔案)

cat id_rsa.pub
複製程式碼

複製公鑰內容

ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX youremail@example.com
複製程式碼

Step2 Linux中寫入上一步複製的公鑰

登入 Linux 伺服器,執行命令

 ssh-keygen -t rsa
複製程式碼

然後一路回車

然後進入 .ssh

 cd ~/.ssh
複製程式碼

編輯 authorized_keys 檔案

 vi authorized_keys
複製程式碼

進入編輯後,按 I 進入修改,將我們電腦上的公鑰複製進去。

修改完成後 依次按 Esc:wq,回車儲存修改。

然後檢視一下

cat authorized_keys
ssh-rsa XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX youremail@example.com
複製程式碼

看到已成功修改

登入一下

ssh root@xx.xxx.xxx.xxx # 填你的伺服器IP
複製程式碼

如果你的伺服器是阿里雲且重灌過系統,可能會遇到以下報錯

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the ECDSA key sent by the remote host is
SHA256:xi/sxkP1juN+73HCAhkSXRMCuN48zfMjDTUylonzAPo.
Please contact your system administrator.
Add correct host key in /c/Users/Wen Minghui/.ssh/known_hosts to get rid of this message.
Offending ECDSA key in /c/Users/Wen Minghui/.ssh/known_hosts:8
ECDSA host key for xx.xxx.xxx.xxx has changed and you have requested strict checking.
Host key verification failed.
複製程式碼

解決:使用命令清除所連線的伺服器IP

 ssh-keygen -R XX.XX.XX.XX 
複製程式碼

再次嘗試連線

ssh root@xx.xxx.xxx.xxx
複製程式碼

可以看到登入成功

Last login: Wed Apr 17 18:03:44 2019 from 14.154.30.158

Welcome to Alibaba Cloud Elastic Compute Service !
複製程式碼

如果是 Linux 對 Linux 的免密登入也是差不多的,下一篇就使用 Gitlab-runner 結合免密登入自動部署 Gitlab 上的專案。

參考

WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! 的解決

相關文章