资源简介
Java语言+绚丽的界面+仿ssh实现调用Linux的Terminal,实现远程连接linux进行命令行的操作!

代码片段和文件信息
package com.smu.yyh.conn;
import java.io.File;
import java.io.IOException;
import javax.swing.Jframe;
import javax.swing.JOptionPane;
import javax.swing.SwingUtilities;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.KnownHosts;
import ch.ethz.ssh2.Session;
import com.smu.yyh.dialog.EnterSomethingDialog;
import com.smu.yyh.dialog.TerminalDialog;
/**
* 使用单独的线程建立ssh连接
*
* @author yyh
*
*/
public class ConnectionThread extends Thread {
private static final String idDSAPath = “~/.ssh/id_dsa“;
private static final String idRSAPath = “~/.ssh/id_rsa“;
private String hostname;
private String username;
private Jframe loginframe;
private KnownHosts database;
public ConnectionThread(String hostname String username KnownHosts database Jframe loginframe) {
this.hostname = hostname;
this.username = username;
this.database = database;
this.loginframe = loginframe;
}
public void run() {
Connection conn = new Connection(hostname);
try { // 验证连接
String[] hostkeyAlgos = database.getPreferredServerHostkeyAlgorithmOrder(hostname);
if (hostkeyAlgos != null)
conn.setServerHostKeyAlgorithms(hostkeyAlgos);
conn.connect(new com.smu.yyh.utils.AdvancedVerifier(loginframe database));
boolean enableKeyboardInteractive = true;
boolean enableDSA = true;
boolean enableRSA = true;
String lastError = null;
while (true) { // 认证阶段
if ((enableDSA || enableRSA) && conn.isAuthMethodAvailable(username “publickey“)) {
if (enableDSA) {
File key = new File(idDSAPath);
if (key.exists()) {
EnterSomethingDialog esd = new EnterSomethingDialog(loginframe “DSA Authentication“ new String[] { lastError
“输入DSA密钥:“ } true);
esd.setVisible(true);
boolean res = conn.authenticateWithPublicKey(username key esd.answer);
if (res == true)
break;
lastError = “DSA验证失败“;
}
enableDSA = false;
}
if (enableRSA) {
File key = new File(idRSAPath);
if (key.exists()) {
EnterSomethingDialog esd = new EnterSomethingDialog(loginframe “RSA Authentication“ new String[] { lastError
“输入RSA密钥:“ } true);
esd.setVisible(true);
boolean res = conn.authenticateWithPublicKey(username key esd.answer);
if (res == true)
break;
lastError = “RSA 验证失败“;
}
enableRSA = false;
}
continue;
}
if (enableKeyboardInteractive && conn.isAuthMethodAvailable(username “keyboard-interactive“)) {
com.smu.yyh.utils.InteractiveLogic il = new com.smu.yyh.utils.InteractiveLogic(lastError loginframe);
boolean res = conn.authenticateWithKeyboardInteractive(username il);
if (res == true)
break;
if (il.getPromptCount() == 0) {
lastError = “键盘无法键入“;
enableKeyboardInteractive = false;
} else {
lastError = “身份验证失败“;
}
continue;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 425 2014-08-02 12:58 SSH\.classpath
文件 379 2014-08-02 13:59 SSH\.project
文件 598 2014-07-30 09:58 SSH\.settings\org.eclipse.jdt.core.prefs
文件 757 2014-08-02 14:09 SSH\bin\com\smu\yyh\conn\ConnectionThread$1.class
文件 5047 2014-08-02 14:09 SSH\bin\com\smu\yyh\conn\ConnectionThread.class
文件 905 2014-08-02 13:59 SSH\bin\com\smu\yyh\dialog\EnterSomethingDialog$1.class
文件 2691 2014-08-02 13:59 SSH\bin\com\smu\yyh\dialog\EnterSomethingDialog.class
文件 817 2014-08-02 15:34 SSH\bin\com\smu\yyh\dialog\TerminalDialog$1.class
文件 1090 2014-08-02 15:34 SSH\bin\com\smu\yyh\dialog\TerminalDialog$2.class
文件 2443 2014-08-02 15:34 SSH\bin\com\smu\yyh\dialog\TerminalDialog$RemoteConsumer.class
文件 3270 2014-08-02 15:34 SSH\bin\com\smu\yyh\dialog\TerminalDialog.class
文件 731 2014-08-02 13:59 SSH\bin\com\smu\yyh\ssh\SecureShell$1.class
文件 625 2014-08-02 13:59 SSH\bin\com\smu\yyh\ssh\SecureShell$2.class
文件 5896 2014-08-02 13:59 SSH\bin\com\smu\yyh\ssh\SecureShell.class
文件 2753 2014-08-02 13:59 SSH\bin\com\smu\yyh\utils\AdvancedVerifier.class
文件 1740 2014-08-02 13:59 SSH\bin\com\smu\yyh\utils\InteractiveLogic.class
文件 244831 2014-08-02 10:48 SSH\lib\ganymed-ssh2-build210.jar
文件 1743059 2014-08-02 12:58 SSH\lib\substance.jar
文件 4295 2014-08-02 14:09 SSH\src\com\smu\yyh\conn\ConnectionThread.java
文件 1910 2014-08-02 13:56 SSH\src\com\smu\yyh\dialog\EnterSomethingDialog.java
文件 3993 2014-08-02 15:34 SSH\src\com\smu\yyh\dialog\TerminalDialog.java
文件 4710 2014-08-02 13:57 SSH\src\com\smu\yyh\ssh\SecureShell.java
文件 2318 2014-08-02 13:49 SSH\src\com\smu\yyh\utils\AdvancedVerifier.java
文件 1244 2014-08-02 12:52 SSH\src\com\smu\yyh\utils\InteractiveLogic.java
目录 0 2014-08-03 08:49 SSH\bin\com\smu\yyh\conn
目录 0 2014-08-03 08:49 SSH\bin\com\smu\yyh\dialog
目录 0 2014-08-03 08:49 SSH\bin\com\smu\yyh\ssh
目录 0 2014-08-03 08:49 SSH\bin\com\smu\yyh\utils
目录 0 2014-08-03 08:49 SSH\src\com\smu\yyh\conn
目录 0 2014-08-03 08:49 SSH\src\com\smu\yyh\dialog
............此处省略16个文件信息
相关资源
- 在linux系统下用java执行系统命令实例
- java远程进行telnetftpssh连接的方法及源
- 安装libwebkitgtk提示没有可用的软件包
- ssh投票系统小项目
- 基于SSH框架的JavaWeb项目—人员信息管
- SSH登录注册
- JDK_1.8_Linux32bit 百度云
- jsp00357房屋中介管理系统ssh+myeclipse+
- 基于SSH的网上书城_j2ee专周_源代码+数
- JSP MYSQL SSH教师教学评价管理系统
- JSP房屋租售管理系统java+mysql+ssh.
- rt3070驱动Linux
- ssh框架jar包
- 双鱼林JSP基于SSH2教务选课成绩管理系
- 一个仿当当的网上商城 Eshop System 前台
- java代码在window获取linux文件
- javassist-3.15.0-GA.jar
- jira6.3汉化包
- SELinux_Treble.pdf (Android8.0 sepolicy权限新
- 博客系统sshjavaweb.zip
- java ssh上传文件代码
- 在线投票系统源代码
- 基于SSH的简单购物系统
- JSP网上人才招聘网站SSH
- 二次开发linux必备视频通话源码
- Java SSH框架实现房屋租售管理系统ja
- Java SSH框架显示饼图和柱形图
- spring-3.2.0.M1版本核心jar
- javaweb课程资源管理系统.zip
- java环境下的Redis的jar包与Linux版本的
评论
共有 条评论