JAVA開発メモ
SSH通信 のバックアップ(No.1)
 

[トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]


Ganymed SSH-2 for Java

Ganymed SSH-2 for Javaは、JAVAのみでSSH2通信のクライアントを実現できるライブラリです。

変更履歴

2006-10-06: build 210 (including jar, examples, source and javadoc):

簡単なサンプル

 import java.io.IOException;
 import org.apache.commons.io.IOUtils;
 import ch.ethz.ssh2.Connection;
 import ch.ethz.ssh2.Session;
 import ch.ethz.ssh2.StreamGobbler;

 public class SshConnection {

     /** SSHサーバのホスト名 */
     private final static String HOSTNAME = "hostname";

     /** SSHサーバのユーザ名 */
     private final static String USERNAME = "userid";

     /** SSHサーバのパスワード */
     private final static String PASSWORD = "pass";

     /** SSHサーバのエンコード文字セット */
     private final static String ENCODE = "UTF-8";

     public SshConnection() {
     }

     /**
      * SSHにてシェルコマンドを実行します。
      *
      * @param command シェルコマンド
      * @return 標準出力
      * @throws AuthenticationExcepiton 認証エラー
      * @throws ExitStatusExcepiton コマンド実行エラー
      * @throws IOException 通信エラー
      */
     public String execCommand(String command) throws AuthenticationExcepiton,
             ExitStatusExcepiton,
             IOException {
         String out = "";

         Connection connection = null;
         Session session = null;
         try {
             // 接続処理
             connection = new Connection(HOSTNAME);
             connection.connect();

             // 認証
             boolean isAuthenticated = connection.authenticateWithPassword(USERNAME, PASSWORD);
             if (!isAuthenticated) {
                 throw new AuthenticationExcepiton();
             }

             // コマンド実行
             session = connection.openSession();
             session.execCommand(command);
             out = IOUtils.toString(new StreamGobbler(session.getStdout()), ENCODE);
             if (session.getExitStatus() != 0) {
                 throw new ExitStatusExcepiton("ExitCode: " + session.getExitStatus());
             }
             System.out.println("ExitCode: " + session.getExitStatus() + "\n" + out);
         } finally {
             if (session != null) {
                 session.close();
             }
             if (connection != null) {
                 connection.close();
             }
         }
         return out;
     }
 }

 import java.io.IOException;

 /**
  * SSH認証例外クラスです。
  *
  */
 public class AuthenticationExcepiton extends IOException {
     public AuthenticationExcepiton() {
         super("Authentication failed.");
     }
 }

 import java.io.IOException;

 public class ExitStatusExcepiton extends IOException {
     public ExitStatusExcepiton() {
         super();
     }

     /**
      * コンストラクタ
      *
      * @param msg エラーメッセージ
      */
     public ExitStatusExcepiton(String msg) {
         super(msg);
     }
 }

トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Modified by MT22(Moriwaki Takashi)

"PukiWiki" 1.3.7 Copyright © 2001,2002,2003 PukiWiki Developers Team. License is GNU/GPL.
Based on "PukiWiki" 1.3 by sng
Powered by PHP 5.3.29

HTML convert time to 0.013 sec.