资源简介
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个文件信息
相关资源
- ssh2 简易论坛系统
- 基于java Web学生选课后台管理系统
- 基于SSH+MySQL的学生成绩管理系统
- TeenMusic在线音乐分享系统 | JavaWeb项目
- Linux驱动开发 file_operations ioctl read
- Struts所需要的jar
- Javaee大学生运动会成绩管理系统
- 毕业设计论文——基于sshjsp的影院管
- JAVA WEB投票系统源码
- JSP在线考试系统完整(论文+源码+数据
- 北大青鸟JAVA企业客户管理系统
- 基于ssh框架的\“网上订餐系统\“
- javaweb SSH物流配送系统
- Java ssh 经典Java项目源码,人事管理系
- 在linux环境下通过java代码操作串口,
- 基于WEB的IT电脑购物系统的设计与实现
- 基于WEB的农产品销售管理系统.rar
- 网上体育商城的设计与实现.rar
- xincs心理测试测评系统.zip
- JavaEE课程设计全套.zip
- 综合实践项目管理系统IPPMS.zip
- mipsel-linux-android-4.9windows-64位
- RIoTboard开发板资料手册、映像、源码
- Java 中文字体修正包 For Linux
- ssh框架信息管理系统
- 交叉编译arm Linux环境下的android-tools
- 搭建ssh完整jar包包含Mysql资源包
- springmvc+spring+hibernate集成jar包
- SSH版图书管理系统
- SSH网上商城项目实战源码E_shop有jar包
评论
共有 条评论