一、依赖
<dependency>
<groupId>ch.ethz.ganymed</groupId>
<artifactId>ganymed-ssh2</artifactId>
<version>262</version>
</dependency>
二、逻辑实现
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.SCPInputStream;
import java.io.File;
import java.io.FileOutputStream;
/**
* @author
* @name
* @desc
* @jdk 1.8
* @os Deepin
* @date 2019/7/13.
*/
public class CopyFile {
public static void main(String[] args) {
try {
// 远程机器ip
String ip = "134.256.11.10";
// ssh端口
int port = 22;
// ssh登录 用户名 密码
String pwd = "9857q*qCE1zbbcgc";
String user = "root";
// 创建链接
Connection conn = new Connection(ip, port);
conn.connect();
// 登录
conn.authenticateWithPassword(user, pwd);
// 获取SCPClient
SCPClient sc = conn.createSCPClient();
// 获取远程机器上的文件流 (远程文件地址的绝对路径)
SCPInputStream is = sc.get("/usr/local/server/test.xml");
// 创建本机文件写入流
FileOutputStream os = new FileOutputStream(new File("/home/bing/server/test.xml"));
// 将文件写入本地
byte[] b = new byte[4096];
int i;
while ((i = is.read(b)) != -1) {
os.write(b, 0, i);
}
os.flush();
// copy完成,关闭相应资源
is.close();
os.close();
conn.close();
System.out.println("copy ok");
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}