官方網址: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