官方地址: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 セッション (リモート コマンド実行およびシェル アクセス)、ローカルおよびリモート ポート転送、ローカル ストリーム転送、X11 転送、SCP および SFTP をサポートします。すべての暗号化機能が含まれているため、JCE プロバイダーへの依存関係はありません。
程序:
复制番号代番号次のように:
@テスト
public void testSsh() {
文字列ホスト名 = "192.168.0.1";
文字列ユーザー名 = "root";
文字列パスワード = "パスワード";
試す {
/* 接続インスタンスを作成します */
接続 conn = 新しい接続(ホスト名);
/* 接続してください */
conn.connect();
System.out.println("接続OK");
/*
* 認証します。次のような IOException が発生した場合
* 「この段階では、認証方法のパスワードはサーバーでサポートされていません。」
* その後、よくある質問をご確認ください。
*/
boolean isAuthenticated = conn.authenticateWithPassword(ユーザー名,パスワード);
if (isAuthenticated == false)
throw new IOException("認証に失敗しました。");
System.out.println("認証OK");
/* セッションを作成します */
セッション sess = conn.openSession();
sess.execCommand("uname -a");
System.out.println("リモート ホストに関する情報は次のとおりです:");
/*
* この基本的な例では、stderr は処理されません。
* 危険です (よくある質問をお読みください)。
*/
InputStream stdout = 新しい StreamGobbler(sess.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));
while (true) {
文字列行 = br.readLine();
if (行 == null)
壊す;
System.out.println(line);
}
/* 利用可能な場合は終了ステータスを表示します (それ以外の場合は「null」) */
System.out.println("ExitCode: " + sess.getExitStatus());
/* このセッションを閉じます */
sess.close();
/* 接続を閉じます */
conn.close();
} キャッチ (IOException e) {
e.printStackTrace(System.err);
System.exit(2);
}
}
実行結果:
复制番号代番号次のように:
接続OK
認証OK
リモート ホストに関する情報は次のとおりです。
Linux localhost.localdomain 2.6.22 #1 SMP Wed Aug 13 11:24:59 CST 2008 i686 i686 i386 GNU/Linux
終了コード: 0