zoukankan      html  css  js  c++  java
  • Linux配置SSH公钥认证与Jenkins远程登录进行自动发布

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过。如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/mao2080/

    1、问题描述

      假设有两台服务器,A是Jenkins构建服务器,B是应用服务器,现有问题是A构建好应用之后,将程序包传到B服务器进行发布,并执行启动命令?这时候就需要给用到远程“免密码”登录。

    2、解决原理

      公钥认证,是使用RSA加密算法生成一对加密字符串,一个称为公钥(public key), 任何人都可以看到其内容,用于加密;另一个称为密钥(private key),只有拥有者才能看到,用于解密。在使用jenkins自动构建并远程登录服务器进行发布应用的时候,需要使用SSH公钥认证来解决登录服务器的问题。

    3、操作步骤

      1、在A服务器上使用命令:cd /root/.ssh,进入到 /root/.ssh目录

      2、在A服务器上对应目录上生成密钥对,命令:ssh-keygen -t rsa -P '',回车之后会生成id_rsa(私钥) 和 id_rsa.pub(公钥)两个文件。

    [root@user .ssh]# ssh-keygen -t rsa -P ''
    Generating public/private rsa key pair.
    Enter file in which to save the key (/root/.ssh/id_rsa): 
    Your identification has been saved in /root/.ssh/id_rsa.
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    The key fingerprint is:
    c2:ce:70:bd:4c:49:00:c7:4a:e4:6e:3b:b9:e7:90:c7 root@user.dev
    The key's randomart image is:
    +--[ RSA 2048]----+
    |   .ooo          |
    |   .....         |
    |   ...  .        |
    |   ... o .       |
    |    + + S        |
    |   . X + .       |
    |    * E o        |
    |     =.          |
    |    .o.          |
    +-----------------+
    

      3、使用cat id_rsa.pub(公钥) 查看内容,并复制此条命令。

    [root@user .ssh]# cat id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtOQDhB3jLr7MGfUPi7KjVnOIYplcfNQpYJRPfdwn8ImvqZJGiR8ZQd2GRnNQ9VoXa3hosdQbdlTydehlxqAXd3i4/jxbk/8sfbk6w62wgHUWoV3PA88BvqASZ9YLoO6euWXYAi/wi2/vcUJQhsjHdYsaTUJ59JE4zhy
    DY8rsgQ3yb1Mcjyen6lnUNk/UxvdXrtmSPW2yDd4QdJ33p4BmAwGK8IBziNK2IHbdddjtQCfviCQi6HBiKdBlrOpNgk1FTkA2FsCSAt0Ec5qy+didrSZ1OZGNrN0vBLYe0Q+kD5LI4dbnmUOhwnPy4GkJ4zK42Woy/stJbnmsTfRPpwbKQ6== root@user.dev

      4、在B服务器上,进入目录:/root/.ssh,并执行如下命令:

    echo 'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAtOQDhB3jLr7MGfUPi7KjVnOIYplcfNQpYJRPfdwn8ImvqZJGiR8ZQd2GRnNQ9VoXa3hosdQbdlTydehlxqAXd3i4/jxbk/8sfbk6w62wgHUWoV3PA88BvqASZ9YLoO6euWXYAi/wi2/vcUJQhsjHdYsaTUJ59
    JE4zhyDY8rsgQ3yb1Mcjyen6lnUNk/UxvdXrtmSPW2yDd4QdJ33p4BmAwGK8IBziNK2IHbdddjtQCfviCQi6HBiKdBlrOpNgk1FTkA2FsCSAt0Ec5qy+didrSZ1OZGNrN0vBLYe0Q+kD5LI4dbnmUOhwnPy4GkJ4zK42Woy/stJbnmsTfRPpwbKQ6== root@user.dev' >> authorized_keys

      5、如果还有其他应用服务器C,那么重复步骤4即可。 

      6、其他知识,在A服务器上可以使用产生的私钥登录到其他服务器,命令如下:

    ssh -i id_rsa root@192.168.1.1

    4、参考网站

    https://www.cnblogs.com/jager/p/5986563.html

  • 相关阅读:
    Educational Codeforces Round 15 C. Cellular Network(二分)
    HDU 1044 Collect More Jewels(BFS+DFS)
    NBOJv2 Problem 1009 蛤玮的魔法(二分)
    HDU 1016 Prime Ring Problem(经典DFS+回溯)
    HDU 2181 哈密顿绕行世界问题(经典DFS+回溯)
    OpenCV学习笔记——滑动条开关
    廖雪峰Java15JDBC编程-3JDBC接口-3JDBC更新
    廖雪峰Java15JDBC编程-3JDBC接口-1JDBC简介
    廖雪峰Java15JDBC编程-2SQL入门-2insert/select/update/delete
    廖雪峰Java15JDBC编程-2SQL入门-1SQL介绍
  • 原文地址:https://www.cnblogs.com/mao2080/p/8931981.html
Copyright © 2011-2022 走看看