JAVA開発メモ
SSH通信
 

[リロード]   [新規|編集|差分|添付]   [トップ|一覧|単語検索|最終更新|バックアップ|ヘルプ]

サイトメニュー
最新の20件
2018-08-012018-02-222016-12-222015-06-242013-07-032013-02-262011-01-122010-06-082010-03-092010-03-032009-12-302009-10-302009-02-252009-02-242009-02-112008-09-242008-09-232008-09-16


Ganymed SSH-2 for Java

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

変更履歴

2006-10-06: build 210 (including jar, examples, source and javadoc): 2011-01-12: correct spell miss (AuthenticationException?, ExitStatusException?):

簡単なサンプル

 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 AuthenticationException 認証エラー
      * @throws ExitStatusException コマンド実行エラー
      * @throws IOException 通信エラー
      */
     public String execCommand(String command) throws AuthenticationException,
             ExitStatusException,
             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 AuthenticationException();
             }
 
             // コマンド実行
             session = connection.openSession();
             session.execCommand(command);
             out = IOUtils.toString(new StreamGobbler(session.getStdout()), ENCODE);
             if (session.getExitStatus() != 0) {
                 throw new ExitStatusException("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 AuthenticationException extends IOException {
     public AuthenticationException() {
         super("Authentication failed.");
     }
 }

 import java.io.IOException;
 
 public class ExitStatusException extends IOException {
     public ExitStatusException() {
         super();
     }
 
     /**
      * コンストラクタ
      * 
      * @param msg エラーメッセージ
      */
     public ExitStatusException(String msg) {
         super(msg);
     }
 }

リロード   新規 編集 差分   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS
Last-modified: Wed, 12 Jan 2011 09:55:07 JST (3110d)

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.050 sec.