資源簡(jiǎn)介
Java語言+絢麗的界面+仿ssh實(shí)現(xiàn)調(diào)用Linux的Terminal,實(shí)現(xiàn)遠(yuǎn)程連接linux進(jìn)行命令行的操作!

代碼片段和文件信息
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;
/**
?*?使用單獨(dú)的線程建立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?{?//?驗(yàn)證連接
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)?{?//?認(rèn)證階段
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驗(yàn)證失敗“;
}
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?驗(yàn)證失敗“;
}
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?=?“身份驗(yàn)證失敗“;
}
continue;
}
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件????????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個(gè)文件信息
評(píng)論
共有 條評(píng)論