`

SSH客户端使用—Ganymed SSH-2 for Java

阅读更多
package com.test;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;

import org.junit.Test;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;

import com.util.ConnectionUtils;

/**
 * Ganymed SSH-2 for Java
 * @author bain
 * http://www.ganymed.ethz.ch/ssh2/
 *
 */
public class SSH2TestDemo {

	@Test
	public void test1() throws Exception {
		Connection conn = ConnectionUtils.getConnection("192.168.94.128");
		conn.connect();

		boolean isAuthenticated = conn.authenticateWithPassword("bain", "521");

		if (isAuthenticated) {
			System.out.println("授权成功");
		}

		Session session = conn.openSession();
		// 执行命令
		// session.execCommand("ls -al ");
		// 查看文章内容,将文章内容返回到客户端
		session.execCommand("ls  -al");
		// 阻塞访问数据流
		BufferedReader reader = new BufferedReader(new InputStreamReader(
				session.getStdout()));

		String line = null;
		while ((line = reader.readLine()) != null) {
			System.out.println(line);
		}
		// 如果执行结果正确的话,返回结果为0,
		// 执行结果出错的话,返回127.
		System.out.println("反映结果为" + session.getExitStatus());
		Integer result = session.getExitStatus();
		// 出现错误--只有在执行结果出现错误时,session.getStderr()才会返回inputstream
		BufferedReader reader2 = new BufferedReader(new InputStreamReader(
				session.getStderr()));
		String line1 = null;
		while ((line1 = reader2.readLine()) != null) {//如果执行结果正确的话,就不会执行此while循环 
			System.out.println(line1);
		}
		
		
		//一个session只能用于执行一个命令,如果想要同时执行多个命令的话,那么可以通过创建多个connection完成
		//如果一个命令执行完毕之后,需要将创建的session关闭
		session.close();
		
		session=conn.openSession();
		session.execCommand(" cd /");
		session.close();
		conn.close();
	}
}

 

分享到:
评论

相关推荐

    Ganymed SSH-2 for Java

    **Ganymed SSH-2 for Java** 是一个开源库,专为Java开发者设计,用于实现Secure Shell(SSH-2)协议。SSH-2是一种安全的网络协议,用于在网络之间提供加密通信,常用于远程登录、文件传输以及执行远程命令等。...

    Java运用ganymed-ssh2-build210.jar包远程连接操作linux服务器

    Java 远程连接 Linux 服务器使用 Ganymed-SSH2 库 标题解释 本文档的标题是"Java 运用 Ganymed-SSH2 库远程连接操作 Linux 服务器",这意味着我们将使用 Java 语言来远程连接 Linux 服务器,并使用 Ganymed-SSH2...

    ganymed-ssh2-build210

    在Java开发中,Ganymed SSH-2库提供了一套完整的API,使开发者能够轻松地集成SSH功能到他们的应用程序中。这个库不仅支持SSH连接,还包含了对SFTP(Secure File Transfer Protocol)的支持,使得在客户端和服务器...

    ganymed-ssh2 工具类

    ganymed-ssh2工具类为Java开发者提供了一个强大的SSH2客户端实现,简化了与远程服务器的交互过程。从建立安全连接到执行命令、传输文件,这个库覆盖了SSH协议的诸多功能,且易于集成到任何Java项目中。通过学习和...

    ganymed-ssh2-build

    Ganymed SSH2是一个由Christian Plattner开发的Java实现,它允许Java程序以客户端模式连接到支持SSH2的服务器,执行各种操作。 标签“ssh2 ganymed”进一步确认了这个库与SSH2协议以及Ganymed项目的关系。Ganymed ...

    ganymed-ssh2-263高版本加密

    ganymed-ssh2是一个开源Java实现的SSH2客户端库,由瑞士苏黎世联邦理工学院的开发团队创建。在版本263中,ganymed-ssh2引入了更高级的加密算法和安全改进,旨在提高数据传输的安全性,为开发者提供了更强大的安全...

    ganymed-ssh2-build261.jar,还有源码

    Ganymed SSH2是一款开源的Java实现的SSH2客户端库,它为Java开发者提供了全面的SSH2功能,包括连接、身份验证、加密、端口转发等。本文将深入探讨Ganymed SSH2 Build 261,以及与其相关的源码分析。 Ganymed SSH2 ...

    Java应用程序远程登录linux并执行其命令.pdf

    其中,Ganymed SSH-2是Java中一个流行的SSH客户端库,提供了完整的SSH协议实现。 在Java应用程序中,我们可以使用Ganymed SSH-2库来连接Linux服务器,执行命令并获取结果。Ganymed SSH-2库提供了完整的SSH协议实现...

    java远程连接

    Ganymed SSH2是开源项目,提供了全面的SSH2客户端功能,包括文件传输、命令执行和端口转发。 首先,我们需要理解SSH的基本概念。SSH主要用于替代传统的telnet和rlogin等不安全的远程登录协议,因为它提供了数据的...

    java shh2连接

    ganymed-ssh2是瑞士苏黎世联邦理工学院的一个项目,提供了一个轻量级且功能强大的Java SSH2客户端库。它的版本build210包含了一些关键功能,例如公钥和私钥的身份验证、端口转发、会话管理和文件传输。 要使用...

    myWrt:Android 的 openWrt 控制器,它使用 SSH 与 openWrt 通信

    我的Wrt 一个简单的 Android openWrt 控制器,它实现了一个简单的“命令行”界面来执行命令。 客户端使用 ganymed-ssh2-build210.jar 库与 SSH 服务器通信。

    matlab开发-sshsftpscpformatlabv2

    "ganymed-ssh2"是一个Java实现的SSH-2库,提供了全面的SSH功能,包括连接建立、会话管理、密钥交换、身份验证以及通道建立等。MATLAB通过Javalib(Java库的接口)与ganymed-ssh2库交互,实现了在MATLAB环境中调用...

    自动部署相关jar包

    在Java开发中,Ganymed SSH2是一个开源库,实现了SSH2协议,允许开发者通过编程方式与远程服务器进行交互。Ganymed-ssh2-262.jar就是这个库的特定版本,它包含了所有必要的类和方法,可以让你在Java程序中实现SSH...

    GoToServers Simple SFTP-开源

    一个简单的SFTP Java applet客户端,建立在Ganymed SSH-2 Java库上。

    Java远程调用Shell脚本并获取输出信息【推荐】

    该方法通过使用Java的SSH客户端来连接远程Linux服务器,执行Shell脚本,并获取输出信息。 一、添加依赖 要使用Java远程调用Shell脚本,需要添加以下依赖项: * Ganymed SSH-2:用于连接远程Linux服务器 * Commons...

    Java连接Linux服务器过程分析(附代码)

    使用Xshell或其他SSH客户端登录服务器,进入`~/.ssh`目录,编辑`authorized_keys`文件,将公钥信息粘贴到文件末尾。如果文件不存在,需要手动创建并确保其权限设置正确:`chmod 600 authorized_keys`。此外,`.ssh`...

    eclipse导出带有main方法的jar包.docx

    我们可以使用 SSH 客户端上传 jar 包到服务器上,然后使用以下命令运行 jar 包: ``` java -jar test22.jar ``` 这将执行我们的 main 方法,并打印出 "Hello World!" 的信息。 Tips 和注意事项 在使用 Eclipse ...

    开发常用jar2

    8. **ch**:这个可能是另一个库的前缀,但没有具体的库名,可能是指瑞士的开源项目,例如ch.qos.logback(日志管理)或者ch.ethz.ganymed(SSH2客户端库)等。 这些JAR文件都是Java开发者日常工作中可能会用到的...

Global site tag (gtag.js) - Google Analytics