Code Archive Skip to content Google About Google Privacy Terms
14日(米国時間)、SecureJSHの最新版となる「SecureJSH 1.0」が公開された。SecureJSHはJavaで実装されたSSH実装。サーバサイドにおけるRFC-4251 SSH 2.0プロトコルを実装しており、サーバサイドで動作しているJavaアプリケーションに対してSSHアクセスによる監視業務や開発業務を提供する。 プロダクト自体はThe BSD Licenseのもとで提供されている。SSHでサーバに接続して操作する要領で、SecureJSHでJavaアプリケーションに接続してJavaプログラムをコンパイル/実行できるという特徴がある。 SecureJSHにおける主な特徴は次のとおり。 Linux/FreeBSDで使われるシェルのようにインタラクティブに動作し、プロンプトからそのまま複数行のJavaソースコードを入力してそのまま実行できる。コンパイルは透過的に実行されるた
間があいてしまったが、id:n_shuyo:20060820:1156054408 の続き。 JSch で sftp を行うサンプルプログラムを書き散らかしただけで終わっていたので、簡単に説明。 以下ではサンプルソースを抜粋して個々に説明している。サンプルソース全体を見たい場合は前回の記事 id:n_shuyo:20060820:1156054408 参照。 JSch では、セッションインスタンスを生成し、コネクトメソッドで認証したあと、行いたい操作の種別に応じてチャネルを取得するという流れになる。 JSch jsch=new JSch(); // connect session Session session=jsch.getSession(userid, hostname, 22); session.setPassword(password); session.connect();これ
id:n_shuyo:20060814:1155547412 と id:n_shuyo:20060815:1155613198 の続き。 pure Java な SSH-2 実装である JSch で ssh のコマンド実行を実装してみたが、Ganymed SSH-2 と比べてもコーディング上の特に大きな違いはなかった。 一方、ファイル転送では2つのライブラリの違いが大きく出る。 Ganymed では scp が実装されているが、JSch では scp の実装は行われていない( ChannelScp とやらを実装すれば対応できそうだし、実際 sample ディレクトリには ChannelExec を使って scp を記述した場合のサンプルコードが納められているので、おそらくポリシーとしてあえて scp は実装していないのだろう)。その代わりというのも変だが、sftp が実装されており、かなり
id:n_shuyo:20060814:1155547412 の続き。 まずはシンプルな ssh によるリモートコマンド実行。 JSch の作法は、 各機能は ChannelSession を extends したチャネルクラスに実装されている JSch インスタンスに対して、openChannel() を発行して、チャネルインスタンスを取得する というもの。 チャネルクラスは exec(リモート実行), sftp, shell などなどが用意されている(scp はなぜかない……)。 リモートの HostKey チェックをおこなうかどうかの設定は、StrictHostKeyChecking 設定値に ask|yes|no を指定する。 ask を指定した場合はユーザインターフェースを定義して、対話的に確認させることもできるが、ここでは省く。 下の例では no を設定しているが、チェックをさ
JSch -- Java Secure Channel http://www.jcraft.com/jsch/ id:n_shuyo:20060706:1152162198, id:n_shuyo:20060707:1152290107, id:n_shuyo:20060714:1152899236 で3回に分けて SSH2 の pure Java 実装の一つ Ganymed SSH-2 で scp & ssh やってみたメモを記したが、今回は JSch に手を出してみた。 JSch の特徴はこんな感じ。 100% pure Java な SSH-2 実装 BSD style ライセンス ssh, scp, sftp, ポートフォワード, などなど一通りサポート ant タスク sshexec, scp に採用 Ganymed と比較してみる。 Ganymed はバージョンアップも止まって
id:n_shuyo:20060706:1152162198 と id:n_shuyo:20060707:1152290107 の続き。 pure Java での SSH 実装である Ganymed SSH-2 を使って、scp や単発のコマンド実行を行ってみたが、今回は SSH を通じて複数のコマンドを実行してみる。 基本は openSession() でセッションを都度開きながら、execCommand() を呼び出すという流れになるのだが、いくつか落とし穴がある。 まず session.getStdout() を read して標準出力を取得してやらないと、そもそもコマンドが実行されない。 これは touch のような何も出力しないコマンドであってもそうなってしまう。 それではということで、ループで session.getStdout() を read して標準出力をせっせと読み込ん
今日はもう眠いので、単純に1つのコマンド実行まで。 import java.io.*; import ch.ethz.ssh2.*; public class SshTest { private static final String hostname = "ホスト名"; private static final String userid = "ユーザ名"; private static final String password = "パスワード"; private static final int BUFFER_SIZE = 4096; public static void main(String[] arg) { try { SshTest test = new SshTest(); test.doProc(); } catch (IOException ex) {ex.print
ちょい仕事で Java で SSH/SCP を実行するライブラリがあるといいな的展開があって、ちょっと調べたら良さそうなのがあったので、メモ。 Ganymed SSH-2 for Java http://www.ganymed.ethz.ch/ssh2/ 最初読めなかったけど、「ガニメデ」ですね。 100% Pure Java SSH2 をサポート コマンド実行、shell, scp, port forward 機能をサポート BSD ライセンス 昔は Java から scp を叩ける良いライブラリがまだ無く、結局そのときは外部コマンド実行によって実現したものだが、今はこんないいものがあるんやね。 外部コマンド実行だと、どうしても コマンドごとに認証(よってパフォーマンス悪し) 若干不安定(よってエラー処理が面倒) 標準入出力周りの処理をしっかりする必要がある(よってコーディング量が増える
JCraftは15日、Pure Javaで記述されたオープンソースのSSH2実装であるJSch(Java Secure Channel)の最新版をリリースした。これはSSH2サーバに接続して暗号化通信を行うためのアプリケーションで、以下に挙げる暗号化関連アルゴリズムをサポートしている。 暗号化アルゴリズム : blowfish-cbc / 3des-cbc / aes128-cbc / aes192-cbc / aes256-cbc 鍵交換アルゴリズム : diffie-hellman-group-exchange-sha1 / diffie-hellman-group1-sha1 完全性チェックアルゴリズム : hmac-md5 / hmac-sha1 / hmac-md5-96 / hmac-sha1-96 ホストキー : ssh-dss / ssh-rsa ユーザ認証方式 : pas
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く