java执行scp(非安装证书免密码模式)

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

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

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

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

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

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

Ganymed SSH-2 for Java

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值