博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java执行scp(非安装证书免密码模式)
阅读量:5877 次
发布时间:2019-06-19

本文共 826 字,大约阅读时间需要 2 分钟。

hot3.png

需求:java代码 需要将某个文件 传输到另外一台机器上

方式1:在另外一台机器上也部署一个java web或其它client来配合传输

方式2:利用linux的scp命令直接传输

显然是第二种方式 方便的多

但问题是 第二种是同过ssh的方式进行安全验证,通过验证也有两种方式 一种是 安装证书的方式,还有一种是输入密码的方式,安装总数不好控制也太过呆板 程序也无法掌控太依赖环境。

我们可以执行shell,但是scp命令无法把密码用户名一起带上执行,这里我们就借助于

Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包。可以利用它直接在Java程序中连接SSH服务器。Ganymed SSH-2支持SSH对话(远程命令执行和shell访问),本地和远程端口转发,本地数据流转发,X11转发和SCP。这些都没有依赖任何JCE provider,而且所有这些都包含加密的功能。

代码示例

Connection conn = new Connection(remote);        conn.connect();        boolean isAuthenticated = conn.authenticateWithPassword(user,pw);        if (isAuthenticated == false) {throw new IOException("Authentication failed.");}        SCPClient client = new SCPClient(conn);        client.put(theFile, remoteDir, "0644");        conn.close();

remote 是 IP,user是用户名,pw是密码

转载于:https://my.oschina.net/u/157514/blog/386771

你可能感兴趣的文章
day08-文件操作
查看>>
教学-45 对象的相等
查看>>
贪食蛇
查看>>
关于Spring 中的事务
查看>>
为什么现在都用面向对象开发,为什么现在都用分层开发结构?
查看>>
【离散数学】 SDUT OJ 偏序关系
查看>>
写给学弟学妹的产品入门建议(持续更新)
查看>>
view视图总结
查看>>
C# 知识点随手学习网站推荐
查看>>
深入剖析tomcat之一个简单的web服务器
查看>>
记一次数据库查询语句的优化
查看>>
poj2365
查看>>
SQL学习笔记三select语句的各种形式
查看>>
Android cts all pass 全攻略
查看>>
数学 SCU 4436 Easy Math
查看>>
Django form组件
查看>>
1006 等差数列
查看>>
oracle删除表数据的两种的方式
查看>>
Eval函数知识总结
查看>>
30.angularJS第一个实例
查看>>