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

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

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

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

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

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

咱们能够执行shell,可是scp命令没法把密码用户名一块儿带上执行,这里咱们就借助于 服务器

Ganymed SSH-2 for Java ssh

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

代码示例 加密

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是密码 spa

相关文章
相关标签/搜索