1. 程式人生 > 其它 >java ssh 連線伺服器 檔案上傳,下載

java ssh 連線伺服器 檔案上傳,下載

技術標籤:伺服器sshjava

package com.example.demo.util;


import com.trilead.ssh2.Connection;
import com.trilead.ssh2.ConnectionInfo;
import com.trilead.ssh2.SCPClient;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

/**
 * @Author : Zhang
 * @Description : TODO
 * @Date : 2020/12/17 11:01
 * @Versions : 1.0
 **/
public class SSHUtil {
    /**
     * ssh連線到伺服器 上傳檔案
     * @param host ip地址
     * @param port 埠
     * @param userName 使用者名稱
     * @param password 密碼
     * @param privateKeyFile 本地金鑰的目錄地址
     * @return
     * @throws IOException
     */
    public static void getSSHConnection(String host, int port, String userName, String password, String privateKeyFile) throws IOException {
        Connection con = new Connection(host, port);

        try {
            ConnectionInfo connect = con.connect();
            boolean isAuthed =con.authenticateWithPublicKey(userName,new File(privateKeyFile),password);
            //boolean isAuthed = con.authenticateWithPassword("root", "SsUTUJrpfA6RDBZnX");
            //【2-1】建立SCP客戶端,執行封裝的方法
            SCPClient scpClient = con.createSCPClient();
            //從伺服器獲取檔案
            //scpClient.get("/mnt/test.txt", "F:/yangyc/");
            //將本地檔案上傳到伺服器
            scpClient.put("H:/360-phone/20201215/zpp.txt", "/home/yw/zpp/");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }


    //上傳檔案測試main函式
    public static void main(String[] args) {
        try {

            getSSHConnection("47.100.53.259",22,"user","passWord","H:/id_rsa_2048");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

jar包:

<dependency>
          <groupId>org.tmatesoft.svnkit</groupId>
          <artifactId>svnkit</artifactId>
          <version>1.10.1</version>
      </dependency>