java远程连接ssh的实现

在开发或者测试的过程中,经常会登录到远程服务器上进行一系列操作(如目录跳转、脚本执行等);这些动作固定,但是每次重复操作会显得较为繁琐。基于此,开发出一个自动化脚本用以代替手工执行很有必要。

这里给大家介绍一种基于java的远程ssh连接实现工具,jsch。jsch作为一种ssh2的纯java实现,能够允许我们连接到一个sshd 服务器,进而进行文件传输、文件下载等操作,能够很轻松的将ssh的功能集成到代码当中。关于ssh的基本原理,我就不再做过多介绍。接下来,介绍下工具的使用(自行在maven仓库中搜索jsch依赖)。

1 新建jsch对象,作为基础句柄使用

JSch jsch = new JSch();


2 根据用户名,主机ip,端口号获取一个session,与远程服务器建立一个会话连接:


3 session建立之后,可以基于此,在远程服务器上执行shell以及文件上传下载操作了

执行shell代码实现:


文件下载代码实现:


文件上传代码实现:

当然jsch还可以实现从跳板机登录到开发机,以及登录错误最大重试次数设置等功能,这些大家有兴趣可以看看源码,也都比较容易实现。在实际测试过程中,我们要想方设法去减少重复工作,不仅提高了测试效率,也增加了我们的知识积累。

最后祝小伙伴们节日快乐呀~

Q