一、依賴
<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());
}
}
}