关于ganymed-ssh2版本262和build210的SCPClient类的区别

ganymed-ssh2是通过java使用ssh连接服务器的工具库,先上两个版本的pom文件配置:
<!--ssh连接linux-->
<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 -->
<dependency>
   <groupId>ch.ethz.ganymed</groupId>
   <artifactId>ganymed-ssh2</artifactId>
   <version>build210</version>
</dependency>

<!--ssh连接linux-->
<!-- https://mvnrepository.com/artifact/ch.ethz.ganymed/ganymed-ssh2 -->
<dependency>
   <groupId>ch.ethz.ganymed</groupId>
   <artifactId>ganymed-ssh2</artifactId>
   <version>262</version>
</dependency>
网络上大部分人使用的还是build210版本,本人之前使用262版本,无奈不想自己写文件上传下载代码,改用了build210版。
这是build210的SCPClient包括的方法,其中包括了文件的下载(get)、文件的上传(put)使用起来直接调用非常方便:

 

262版本的SCPClient相比build210缺少了许多方法,只能够从服务器get文件,但是put方法还需要搭配其他类使用,无法直接上传文件服务器,可能是将相应的功能移去了其他模块:

 


下面是build210版文件上传、下载案例:

public class ScpOpt {

    static String ip = "127.0.0.2";
    static String LiuxUser = "root";
    static String LiuxPawd = "xxxx";
public static void downloadFile() {
        Connection conn = new Connection(ip);
        Session session = null;// 打开一个会话
        try {
            conn.connect();//建立连接
            boolean login = conn.authenticateWithPassword(LiuxUser, LiuxPawd);//根据用户名密码,进行校验 
            if (login) {
                System.out.println("登录成功");
            } else {
                System.out.println("登录失败");
            }
            SCPClient scpClient = conn.createSCPClient();
            //从远程机器获取文件
            scpClient.get("远程文件/root/docker-install.sh", "本地文件夹");
            conn.close();
            session.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }


    public static void uploadFile() {
        Connection conn = new Connection(ip);
        try {
//建立连接 conn.connect();
//根据用户名密码,进行校验
boolean login = conn.authenticateWithPassword(LiuxUser, LiuxPawd); if (login) { System.out.println("登录成功"); } else { System.out.println("登录失败"); } SCPClient scpClient = conn.createSCPClient();
//上传文件 scpClient.put(
"本地文件docker-install.sh", "远程机器目录/root/scp"); conn.close(); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { // downloadFile(); uploadFile(); } }

 

posted @ 2020-05-26 17:55  知识小书包  阅读(1622)  评论(0编辑  收藏  举报