Jenkins 执行远程脚本的插件—SSH2 Easy
SSH2 Easy 是什么?
SSH2 Easy 是一个 Jenkins 插件,它用于在 Jenkins 构建过程中通过 SSH2 协议与远程服务器进行交互。通过该插件,用户可以在 Jenkins 的构建过程中执行远程命令、上传或下载文件、管理远程服务器等操作。
以下是 SSH2 Easy 插件的主要功能和特点:
-
SSH2 支持:该插件使用 SSH2 协议与远程服务器进行通信,确保数据的安全性和稳定性。
-
远程命令执行:用户可以在 Jenkins 的构建过程中执行远程服务器上的命令,比如启动服务、停止服务、部署应用等。
-
文件传输:插件支持上传和下载文件,用户可以方便地将构建产物或配置文件传输到远程服务器上,或从远程服务器下载文件到 Jenkins 服务器。
-
远程服务器管理:用户可以通过插件方便地管理远程服务器,比如添加、删除、编辑服务器信息,并可以为每个服务器配置用户名、密码、端口号等信息。
-
命令执行结果输出:插件支持将远程命令执行的结果输出到 Jenkins 的控制台,方便用户查看命令执行的情况和结果。
-
多种认证方式:插件支持多种认证方式,包括使用用户名和密码、使用私钥文件等。
-
可扩展性:SSH2 Easy 插件支持扩展,用户可以编写自定义的脚本或命令,以满足特定的需求。
总之,SSH2 Easy 插件为 Jenkins 提供了与远程服务器进行交互的强大功能,使得用户可以更方便地在构建过程中管理和操作远程服务器。
SSH2 Easy 的状态
SSH2 Easy是由社区成员而不是 Jenkins 核心团队开发的,其在 Jenkins 插件库(https://plugins.jenkins.io/)中可以查找的插件。由于它出现在 Jenkins 插件索引中,可以认为它是官方认可的插件。
截至2023/10 ,SSH2 Easy的状态如下:
- 最新版本: 1.6
- 最近更新: 2023/07
- Jenkins版本不小于 2.387.3
该插件目前的状态是寻找维护者,在Jenkins插件页面上看到"This plugin is up for adoption!"的声明意味着该插件的当前维护者正在寻找新的贡献者或维护者来接管插件的未来开发和维护工作。这通常发生在原始维护者没有足够的时间或资源来继续支持插件,或者他们不再使用该插件。

所以综合起来:SSH2 Easy可以使用,但是长期来看,还是建议使用后续有维护的插件
SSH2 Easy 的安装与使用
SSH2 Easy 使用的主要步骤是:
-
安装插件:首先,你需要在 Jenkins 中安装
ssh2easy插件。这可以通过 Jenkins 的管理界面中的“插件管理”部分完成。 -
配置插件:安装插件后,你需要在 Jenkins 的系统配置中添加 SSH 服务器的详细信息。这通常包括主机名、端口、用户名、密码/私钥等。
-
在Job中使用插件:在配置好 SSH 服务器信息后,你可以在 Pipeline 脚本或传统的自由风格作业中使用
ssh2easy插件来执行远程命令。
1. 安装SSH2 Easy
这里使用在线安装的方式, 具体步骤如下:
-
进入Jenkins 页面
-
点击左侧的Mange Jenkins ,进入管理页面:

-
点击 “Plugins”, 进入插件管理页面
-
点击左侧的"Available plugins" 后, 在搜素框输入
ssh2 easy可以搜索到SSH2 Easy 的1.6 版本,并提示该插件在寻求维护者状态, 如下图:

-
选中之后,点击“安装”
-
稍等片刻,出现如下页面代表安装成功

2. 配置远程主机
安装完成之后:
-
点击左侧导航的 Manage Jenkins
-
选择System Configuration 下的System
-
往下拉到Server Groups Center
-
在Server Group List 中输入Group 名字, 端口,连接的用户名/密码,点击Apply

-
在Server List 中输入上一步的组名, 输入服务器的机器名或IP ,点击Apply
一个Server Group 设定一组连接账号和密码, 一个Group可以包含多个Server 主机,。
3. Job中配置远程执行
配置完成之后, 在建立Job的时候, Build Steps区块中,点击“Add build step” 按钮时,就会多出以下四个选项:
- 远程 FTP上传
- 远程 FTP下载
- 远程执行命令
- 远程执行脚本

以选择 “远程执行脚本”为例,
就会选择 Target Server, 在shell 区块就可以输入执行脚本的命令。

4. Pipeline 脚本脚本中使用SSH2 Easy
除了在Job中配置远程执行脚本外, 也可以在 Pipeline 脚本示例使用SSH2 Easy执行远程脚本, 示例如下:
pipeline {agent anystages {stage('Remote SSH Command') {steps {ssh2easy(sshServer: 'my-ssh-server', // 在系统配置中定义的 SSH 服务器别名remote: [[remoteCommand: 'echo Hello, World!']])}}}
}
在这个示例中,my-ssh-server是你在 Jenkins 系统配置中设置的 SSH 服务器的别名,remoteCommand是你想要在远程服务器上执行的命令。
SSH2 Easy 的优缺点
SSH2 Easy 插件的优缺点如下:
优点:
- 简单易用:该插件提供了一个简单的界面,使得设置和执行远程SSH命令变得非常容易。
- 高度定制:插件允许用户自定义远程命令、主机以及其他参数,从而根据自己的需求进行定制化配置。
- 可靠性:插件的开发者经过精心测试和稳定性验证,确保插件在执行远程命令时可靠并且不会引发故障。
- 可扩展性:该插件允许用户编写自定义的SSH脚本,从而更进一步满足特定的需求。
缺点:
- 依赖性:该插件需要依赖Jenkins服务器与远程主机之间建立SSH连接,因此需要确保Jenkins服务器可以与远程主机进行通信。
- 安全性:使用SSH连接需要配置安全凭据,并确保凭据的安全保存。如果配置不当,可能会导致安全漏洞。
总体来说,Jenkins SSH2 Easy 插件是一个方便易用的插件,它使得在Jenkins上执行远程SSH命令变得非常容易。然而,在使用过程中需要注意安全性和依赖性的问题
可以替代SSH2 Easy的Jenkins插件
Jenkins有一些与SSH2 Easy类似的插件,用于在Jenkins中执行远程SSH操作。以下是其中一些插件的介绍:
-
SSH Agent Plugin:该插件允许Jenkins使用SSH代理进行身份验证,并在构建过程中提供SSH密钥。它可以用于执行远程SSH命令、传输文件等操作。
-
Publish Over SSH Plugin:该插件允许通过SSH协议将构建产物或其他文件传输到远程服务器。它还可以在远程机器上执行Shell脚本或命令。
-
SSH Slaves Plugin:该插件允许Jenkins使用SSH协议在远程机器上启动和管理构建代理。它可以用于在远程机器上执行构建任务,并将结果返回到Jenkins服务器。
-
SSH Build Agents Plugin:该插件允许Jenkins在远程机器上使用SSH协议启动和管理构建代理。它类似于SSH Slaves Plugin,但有一些额外的配置和管理选项。
-
SSH Credentials Plugin:该插件允许Jenkins在SSH连接配置中使用凭据。它可以存储和管理SSH凭据,以供其他插件使用,如SSH Agent Plugin和Publish Over SSH Plugin。
这些插件可以帮助在Jenkins中执行远程SSH操作,并扩展Jenkins的功能。具体选择哪个插件取决于你的需求和使用场景。
参考
- https://plugins.jenkins.io/ssh2easy/
相关文章:
Jenkins 执行远程脚本的插件—SSH2 Easy
SSH2 Easy 是什么? SSH2 Easy 是一个 Jenkins 插件,它用于在 Jenkins 构建过程中通过 SSH2 协议与远程服务器进行交互。通过该插件,用户可以在 Jenkins 的构建过程中执行远程命令、上传或下载文件、管理远程服务器等操作。 以下是 SSH2 Eas…...
Starting the Docker Engine...一直转圈
出现的问题: 原因排查: 看了网上的很多篇文章,每个原因都排查了,没有发现问题。 遇到这样的情况应先看自己是否安装成功 打开运行,在空框中输入powershell并点击确定: docker version 显示版本证明安装…...
关于Python里xlwings库对Excel表格的操作(十五)
这篇小笔记主要记录如何【获取单元格数据的对齐方式或更改单元格数据的对齐方式】。 前面的小笔记已整理成目录,可点链接去目录寻找所需更方便。 【目录部分内容如下】【点击此处可进入目录】 (1)如何安装导入xlwings库; …...
[Linux] LVS+Keepalived高可用集群部署
一、Keepalived实现原理 1.1 高可用方案 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 在一个LVS服务集群中通常有主服务器(MASTER)和备份服务器(BACKUP)两种角色…...
【版本管理】git stash用法
应用场景 我们在开发过程中可能会遇到这样的情况: 想从A分支切换到B分支,但A分支尚未改完,暂时不想提交代码 此时可以在切换到B分支前,先通过stash指令来缓存本地改动,等切回A分支时,再通过stash还原改动…...
声明式的理解【gpt】
一 MyBatis采用了声明式语法来进行SQL映射配置【mybatis声明式】 MyBatis是一款优秀的持久层框架,支持自定义SQL、存储过程以及高级映射,使得开发人员能够专注于SQL本身而不是数据库访问。MyBatis提供了两种配置方式:XML配置和注解配置&…...
提高Spring Boot技能的9种方法
以下是提高 Spring Boot 技能的 9 种方法: 1. 外部化您的配置: 充分利用 Spring Boot 潜力的另一种方法是尽可能地尝试外部化您的配置,而不是对其进行硬编码。外部化您的配置将使您的应用程序更加灵活且更易于管理。 外部化配置的另一个优点…...
HIVE基本操作
1、启动远程服务端:hive --service metastore启动(这里是阻塞式),然后在客户端操作 2、Hive DDL(数据库定义语言) --展示所有数据库show databases; --切换数据库use database_name; 3、创建语法&#x…...
【经典LeetCode算法题目专栏分类】【第5期】贪心算法:分发饼干、跳跃游戏、模拟行走机器人
《博主简介》 小伙伴们好,我是阿旭。专注于人工智能AI、python、计算机视觉相关分享研究。 ✌更多学习资源,可关注公-仲-hao:【阿旭算法与机器学习】,共同学习交流~ 👍感谢小伙伴们点赞、关注! 分发饼干 class Solutio…...
【大数据面试】MapReduce常见问题与答案
目录 介绍下MapReduce MapReduce优缺点 MapReduce架构 MapReduce工作原理 MapReduce哪个阶段最费时间 ✅MapReduce中的Combine是干嘛的?有什么好出? ✅MapReduce环形缓冲区是什么 ✅MapReduce为什么一定要有环型缓冲区 MapReduce为什么一定要有Shuffle过程 MapRedu…...
数组深入学习感悟
注:本文学习借鉴于《代码随想录》 一.介绍数组 数组是储存在连续内存空间中的相同类型数据的集合 数组名的理解: 数组名就是数组⾸元素(第⼀个元素)的地址是对的,但是有两个例外: sizeof(数组名),sizeof中单独放数…...
亚马逊云科技-如何缩容/减小您的AWS EC2根卷大小-简明教程
一、背景 Amazon EBS提供了块级存储卷以用于 EC2 实例,EBS具备弹性的特点,可以动态的增加容量、更改卷类型以及修改预配置的IOPS值。但是EBS不能动态的减少容量,在实际使用中,用户也许会存在此类场景: 在创建AWS EC2…...
[Java 基础] Java Stream
Java Stream 是 Java 8 引入的新特性之一,它提供了一种新的处理数据集合的方式。Stream 可以使我们更加方便地对集合进行处理和操作,同时还能提高代码的简洁性和可读性。 文章目录 什么是 Stream常见用法创建 Stream中间操作终端操作 总结 什么是 Stream…...
达芬奇18.6DaVinci ResolveStudio(Win/Mac)激活版
DaVinci Resolve Studio 18是一款业界领先的视频后期制作软件,它集成了剪辑、调色、视觉特效、动态图形和音频后期制作等功能,为用户提供了完整的创作解决方案。该软件不仅适用于电影、电视和网页内容的制作,还广泛应用于广告、纪录片和独立电…...
力扣题目学习笔记(OC + Swift)16. 最接近的三数之和
16. 最接近的三数之和 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数,使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解。 排序 双指针 思路同15. 三数之和 简单地使用三重循环枚举所有的三…...
基于STM32的DHT11温湿度传感器与LCD显示器的集成设计
在本文中,我们将详细介绍如何基于STM32微控制器实现DHT11温湿度传感器与LCD显示器的集成设计。我们将包括硬件连接、软件编程以及涉及的STM32库函数和相关知识。这个项目旨在帮助您理解如何使用STM32来读取DHT11温湿度传感器的数据,并将数据显示在LCD显示…...
解决浏览器自动将http跳转至https导致无法访问的问题
以下只针对Chrome浏览器 方法一: 1.地址栏中输入chrome://net-internals/#hsts。 2.在Delete domain中输入项目的域名,并Delete(删除)。 3.可以在Query domain测试是否删除成功。 HSTS全称:HTTP Strict Transport Se…...
小程序面试题 | 07.精选小程序面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
深度学习的推理部分
深度学习的推理部分指的是已经训练好的深度学习模型应用于新数据(通常是测试或实际应用数据)以进行预测、分类、分割等任务的过程。在深度学习中,训练和推理是两个阶段: 训练阶段: 在这个阶段,深度学习模型…...
如何用 CleanMyMac 来保护 Mac 隐私
大家早上好,中午好,下午好,晚上好。 在我们使用MacBook上的自带浏览器-Safari(或者一些其他浏览器)进行网页浏览的时候,往往会留下一些痕迹。如果这些痕迹涉及一些敏感数据信息的话,那么我们肯…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...
跨链模式:多链互操作架构与性能扩展方案
跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
springboot整合VUE之在线教育管理系统简介
可以学习到的技能 学会常用技术栈的使用 独立开发项目 学会前端的开发流程 学会后端的开发流程 学会数据库的设计 学会前后端接口调用方式 学会多模块之间的关联 学会数据的处理 适用人群 在校学生,小白用户,想学习知识的 有点基础,想要通过项…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
HTTPS证书一年多少钱?
HTTPS证书作为保障网站数据传输安全的重要工具,成为众多网站运营者的必备选择。然而,面对市场上种类繁多的HTTPS证书,其一年费用究竟是多少,又受哪些因素影响呢? 首先,HTTPS证书通常在PinTrust这样的专业平…...
TMC2226超静音步进电机驱动控制模块
目前已经使用TMC2226量产超过20K,发现在静音方面做的还是很不错。 一、TMC2226管脚定义说明 二、原理图及下载地址 一、TMC2226管脚定义说明 引脚编号类型功能OB11电机线圈 B 输出 1BRB2线圈 B 的检测电阻连接端。将检测电阻靠近该引脚连接到地。使用内部检测电阻时,将此引…...
【优选算法】模拟 问题算法
一:替换所有的问号 class Solution { public:string modifyString(string s) {int n s.size();for(int i 0; i < n; i){if(s[i] ?){for(char ch a; ch < z; ch){if((i0 && ch !s[i1]) || (in-1 && ch ! s[i-1]) || ( i>0 &&…...
