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

  公钥认证,是使用一对加密字符串,一个称为公钥(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后面两个单引号表示密码为空

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

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

之后在用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

修改完后要重启sshd服务

service sshd restart

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

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

时间: 2024-10-05 04:57:48

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

linux配置ssh公钥认证,打通root用户的免密码输入的scp通道

1.ssh-keygen ssh-keygen是unix-like系统的一个用来生成.管理ssh公钥和私钥的工具. 2.用法 常用的重要的选项有: -b num   指定生成多少比特长度的key,单位为b,默认为1024b -t    指定生成key的类型,也就是使用哪一种加密算法,可选的有rsa1 | rsa | dsa 3. [[email protected] ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Ent

Centos7 Ansible 配置SSH公钥认证

一.简介 Ansible的强大之处在与playbooks中,但是要想很好的使用playbooks,我们首先要具备一些基础.如:如何写一个一次性的脚本命令?怎么知道有哪些模块?各个模块是如何使用的?等. 通过本文,可以了解如何使用一次性命令和部分模块的使用. 安装好Ansible之后,要开始工作,还需要创建一个被控制主机列表清单.默认读取/etc/ansible/hosts,如果该文件不存在,则要收到进行创建. [[email protected] ~]# cat /etc/ansible/hos

linux修改ssh端口 以及禁止root远程登录 (实验机 CentOs)

把ssh默认远程连接端口修改为3333 1.编辑防火墙配置: vi /etc/sysconfig/iptables 防火墙新增端口3333,方法如下: -A INPUT -m state --state NEW -m tcp -p tcp --dport 3333 -j ACCEPT 具体是这样做: ====================================================================== # Firewall configuration wri

ssh公钥认证原理及设置root外的其他用户登录ssh

1)创建其他用户 useradd [-d 登录目录] [-G ssh][用户名] 一定要将用户添加到ssh组不然无法没有权限登录ssh 2)设置ssh不允许root登录 vi /etc/ssh/sshd_config 找到 PermitRootLogin yes 修改为PermitRootLogin no 并在尾部添加 AllowUsers  [用户名列表] 然后重启ssh服务,/etc/init.d/ssh restart 3)如何使用公钥认证 先解释下什么是公钥密钥: 公钥私钥是不对称加密方

linux配置ssh互信

                                                                       linux配置ssh互信 公钥认证的基本思想: 对信息的加密和解密采用不同的key,这对key分别称作private key和public key,其中,public key存放在欲登录的服务器上,而private key为特定的客户机所持有.当客户机向服务器发出建立安全连接的请求时,首先发送自己的public key,如果这个public key是被服务

Linux生成ssh公钥免密码登录远程主机和Xshell跨跳板机登录

##Linux生成ssh公钥免密码登录远程主机: 1:ssh-keygen -t rsa#生成密钥2:ssh-copy-id -i ~/.ssh/id_rsa.pub [email protected]#把本机的公钥追到远程主机172.16.205.117(登录账户hejm)的 ~/.ssh/authorized_keys 里注:如果ssh的端口不是22,可用参数p指定对应端口ssh-copy-id -i ~/.ssh/id_rsa.pub -p 23 [email protected] 或者通

SSH公钥认证+优化

一 ssh公钥认证流程: sshclinet机器:产生公私钥(公钥相当于一把锁) sshclient:将公钥发给sshserver(抛出锁子) sshclinet去连sshserver不需要密钥 ? 二 ssh优化 cat /etc/ssh/sshd_config 追加一下 Port 22#ssh连接默认的端口 PermitRootLogin yes #root用户黑客都知道,禁止它远程登录 PermitEmptyPasswords no #禁止空密码登录 UseDNS no #不使用DNS G

Linux配置SSH Key到GitHub

Linux配置SSH Key到GitHub 准备工作 首先检查下本机是否已经安装了SSH,在终端输入ssh即可: 如果没有安装进行yum安装 # yum -y install openssh-clients 生成ssh key 输入ssh-keygen -t rsa,然后连续按回车键三次(注意:千万不要输入密码!). id_rsa.pub为公钥,id_rsa为私钥,它们都是隐藏文件. 那么如何查看它们的内容呢?只需要继续执行以下两条命令即可. # cd .ssh/ # cat id_rsa.pu

Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your [email protected]' -t 指定密钥类型,默认即 rsa ,可以省略-C 设置注释文字,比如你的邮箱 2. 将公钥复制到ssh服务器 将前一步骤生成的公钥~/id_rsa.pub文件,复制到ssh服务器对应用户下的~/.ssh/authorized_keys文件,可以有多种方式,这里只介绍常用的三种. [适用于osx系统]使用ssh-c