官方地址:http://www.cleondris.ch/en/opensource-ssh2.php
简介:
Ganymed SSH-2 for Java 是一个用纯 Java 实现 SSH-2 协议的库(在 J2SE 1.4.2 和 5.0 上测试)。它允许从 Java 程序中连接到 SSH 服务器。它支持 SSH 会话(远程命令执行和 shell 访问)、本地和远程端口转发、本地流转发、X11 转发、SCP 和 SFTP。不依赖任何 JCE 提供程序,因为包含所有加密功能。
程序:
复制代码代码如下:
@测试
公共无效testSsh(){
字符串主机名 = "192.168.0.1";
字符串用户名=“root”;
字符串密码=“密码”;
尝试 {
/* 创建连接实例 */
连接 conn = 新连接(主机名);
/* 现在连接 */
conn.connect();
System.out.println("连接成功");
/*
* 验证。如果你收到一个 IOException 类似的信息
* “现阶段服务器不支持验证方法密码。”
* 然后请查看常见问题解答。
*/
boolean isAuthenticated = conn.authenticateWithPassword(用户名,密码);
if (isAuthenticated == false)
throw new IOException("身份验证失败。");
System.out.println("认证成功");
/* 创建会话 */
会话 sess = conn.openSession();
sess.execCommand("uname -a");
System.out.println("这是远程主机的一些信息:");
/*
* 这个基本示例不处理 stderr,这有时是
* 危险(请阅读常见问题解答)。
*/
InputStream stdout = new StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
而(真){
字符串行 = br.readLine();
如果(行==空)
休息;
System.out.println(行);
}
/* 显示退出状态(如果可用)(否则为“null”)*/
System.out.println("退出代码:" + sess.getExitStatus());
/* 关闭本次会话 */
sess.close();
/* 关闭连接 */
conn.close();
} catch (IOException e) {
e.printStackTrace(System.err);
系统.退出(2);
}
}
运行结果:
复制代码代码如下:
连接正常
验证成功
以下是有关远程主机的一些信息:
Linux localhost.localdomain 2.6.22 #1 SMP 8 月 13 日星期三 11:24:59 CST 2008 i686 i686 i386 GNU/Linux
退出代码:0