Gitlab自动部署之三:Linux免密登录

3,454 阅读2分钟

前言

公司前端大佬因为某些原因离职了,走的比较匆忙,自己之前一直很少接触这方面的东西,一直都是一知半解。这两天我一边学,一边动手搭建,同时记录整个搭建过程。

这是一系列文章,从搭建 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! 的解决