阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux配置SSH公钥认证与Jenkins远程登录进行自动发布

198次阅读
没有评论

共计 2124 个字符,预计需要花费 6 分钟才能阅读完成。

公钥认证,是使用一对加密字符串,一个称为公钥 (public key),任何人都可以看到其内容,用于加密;另一个称为密钥 (private key),只有拥有者才能看到,用于解密。

在使用 jenkins 自动构建并远程登录服务器进行发布应用的时候,需要使用 SSH 公钥认证来解决登录服务器的问题。

其实很简单,只需要两个指令即可。

ssh-keygen -t rsa -P ”

ssh-copy-id -i ~/.ssh/id_rsa.pub <IP>

假设有两台服务器,A 是 Jenkins 构建服务器,B 是应用服务器,A 构建好应用之后,将包传到 B 进行发布。

在 A 上面执行 ssh-keygen -t rsa -P ”,- P 后面两个单引号表示密码为空

Linux 配置 SSH 公钥认证与 Jenkins 远程登录进行自动发布

之后会在~/.ssh 目录下创建两个文件 id_rsa(私钥),id_rsa.pub(公钥)

接下来继续在 A 上执行 ssh-copy-id -i ~/.ssh/id_rsa.pub <IP>,表示将公钥发给 B,发到 B 服务器的~/.ssh 目录下

Linux 配置 SSH 公钥认证与 Jenkins 远程登录进行自动发布

之后在用 ssh B<ip> 尝试能否免密登录 B 服务器,如果还是提示需要输入密码,则有以下原因

a. 非 root 账户可能不支持 ssh 公钥认证(看服务器是否有限制)

b. 传过来的公钥文件权限不够,可以给这个文件授权下  chmod 644 authorized_keys

c. 使用 root 账户执行 ssh-copy-id -i ~/.ssh/id_rsa.pub <IP> 这个指令的时候如果需要输入密码则要配置 sshd_config

vi /etc/ssh/sshd_config

Linux 配置 SSH 公钥认证与 Jenkins 远程登录进行自动发布

修改完后要重启 sshd 服务

service sshd restart

最后,如果可以 SSH IP 免密登录成功说明 SSH 公钥认证成功。

——————————————- 配置插曲 开始 ————————————————–

简单步骤总结(用非 root 用户):

1.      server1 上使用 xxx 用户,先清理之前的 ssh 登录记录,rm –rf ~/.ssh,运行 ssh-keygen –t rsa(只需回车下一步即可,无需输入任何密码)。生成认证密钥。

2.      server1 上使用 ssh-copy-id xxx@server2_IP(需输入 server2 密码), 即会将验证密钥 copy 至 server2(xxx/.ssh/authorized_keys)

3.      server1 上使用 ssh xxx@server2_IP。即可 免密码登录。

4.      相反,即可实现相互免密码登录。

如果最后还是不能实现免密登录,则可以看下 cat /var/log/secure, 比如你 xxx 用户的家目录权限太高:

Linux 配置 SSH 公钥认证与 Jenkins 远程登录进行自动发布

最后把家目录设置成 700 即可,注:目录权限调整可能影响应用程序,请谨慎操作

——————————————- 配置插曲 结束 ————————————————–

接下来进行 jenkins 的 SSH 配置,如下

Linux 配置 SSH 公钥认证与 Jenkins 远程登录进行自动发布

 

Linux 配置 SSH 公钥认证与 Jenkins 远程登录进行自动发布

 

Linux 配置 SSH 公钥认证与 Jenkins 远程登录进行自动发布

1.      server1 上使用 haieradmin 用户,先清理之前的 ssh 登录记录,rm –rf ~/.ssh,运行 ssh-keygen –t rsa(只需回车下一步即可,无需输入任何密码)。生成认证密钥。

2.      server1 上使用 ssh-copy-id haieradmin@server2_IP(需输入 server2 密码), 即会将验证密钥 copy 至 server2(haieradmin/.ssh/authorized_keys)

3.      server1 上使用 ssh haieradmin@server2_IP。即可 免密码登录。

4.      相反,即可实现相互免密码登录。

局域网内利用 GitLab+Jenkins 自动生成 GitBook 并发布 (Nginx)  http://www.linuxidc.com/Linux/2016-05/131136.htm

Linux+Git+Maven+Jenkins+Neuxs 自动化编译环境搭建 http://www.linuxidc.com/Linux/2016-02/128652.htm

CentOS6 安装 Jenkins  http://www.linuxidc.com/Linux/2016-05/131365.htm

使用 Jenkins 配置 Git+Maven 的自动化构建 http://www.linuxidc.com/Linux/2016-02/128641.htm

Jenkins+Maven+Git 搭建持续集成和自动化部署的配置手记 http://www.linuxidc.com/Linux/2015-06/118606.htm

Jenkins 的分布式构建及部署——节点  http://www.linuxidc.com/Linux/2015-05/116903.htm

Jenkins 的详细介绍 :请点这里
Jenkins 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-04/143059.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计2124字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中