問題タブ [jsch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3484 参照

java - 接続障害時に自動的に再接続するようにJSchを構成できますか?

SFTP接続にJava用のJSchAPIを使用しています。サーバーが1秒間ダウンしたり、接続がビジー状態になったりすることがあります。このような場合、接続が失敗したと判断する前に、少なくとも3回サーバーに再接続する必要があります。

JSchには、これを自動的に行うための構成オプションがありますか?

0 投票する
3 に答える
12424 参照

maven - Jsch と Maven の何が問題になっていますか?

Jsch 0.1.44 を Maven と一緒に使用しようとしています。

pom.xml に次の依存関係があります。

Mavenを実行するmvn compileと、正常に見え、Jsch のダウンロードが成功したことがわかります。

しかし、コンパイルに関しては、Jsch クラスが見つかりませんでした。ローカル リポジトリを調べると、Jsch-jar のサイズが 3kb しかないことがわかります。jar ファイルを開くと、META-INF フォルダーしかないこともわかります。

ここで何が問題なのですか、どうすれば修正できますか?

0 投票する
3 に答える
1608 参照

java - sftp および ftp の [ディレクトリの参照] オプション

現在、jsch-0.1.44 を使用して sftp の機能を実行しています。ユーザーがディレクトリを参照するためのオプションを追加する必要があります。リモートサーバーからファイルのリストを取得する方法。この機能のための他のオープンソースはありますか? 私を助けてください

0 投票する
1 に答える
3342 参照

java - Jschを使用して2つのリモートUNIXボックス間でscpを実行するには?

2 つのリモート UNIX ボックス間で scp を実行する必要がある Jsch を使用して Java コードを作成しています。

次のようなJavaコードから通常のコマンドを実行するのと同じ方法でscpコマンドを実行しようとしました:

期待どおりに user@mademo.org のパスワードを要求する代わりに。エラーのみが表示されます:

UNIXボックスでコマンドを直接実行すると、次のことがわかりました。

scp は、リモート マシンに接続するためのパスワードを要求します。ただし、このコードを使用すると、パスワードの入力を求められません。そのため、パスワードなしで scp を実行しようとしており、3 回試行し (NumberoOFAttempts フラグ)、エラー メッセージが表示されます...

パスワードを取得しないだけでなく、少なくとも何かを入力するようにscpプロンプトを表示する方法を知りたい...コードのjschの例で指定されたMyUserInfoクラスのデフォルトの実装を使用しました...

または

scp コマンドと一緒にパスワードを提供する方法はありますか?? 秘密鍵と公開鍵の組み合わせをできるだけ使用しないようにしています..

編集:パウロの投稿から..今、コマンドの疑似端末を取得するためにchannel.setPty(true)を追加しました。自動的に失敗するよりもパスワードを入力するように求められています..

今すぐパスワードを指定するにはどうすればよいですか...コンソールに入力しようとしましたが、受け入れられず、ユーザー入力を待ち続けます.... channel.setInputStream(pwdbytes);を使用して設定しようとしました。しかし、それはコマンドで待機し続け、入力を取りません..

これに関して何か助けてくれてありがとう...

0 投票する
1 に答える
11706 参照

android - JSch:sshキーを使用してサーバーにSSH接続する方法

別のsshサーバーの背後からサーバーにsshで接続したい。ゲートウェイサーバーにはユーザー名/パスワードが必要ですが、これを行うことができます。次のサーバーにアクセスするためにトンネルを使用していますが、これにはsshキーのみが必要です。PuTTYを使用してキーを生成したため、ユーザー名にキーが存在しますが、Javaプログラムでキーを取得する方法がわかりません。構成ですか?つまり、setConfig( "userauth.publickey"、 "com.jcraft.jsch.UserAuthPublicKey")では、これまたは他の何かをどのように使用しますか?ドキュメントがまばらなようです。助けていただければ幸いです。このセッションに接続すると、「Authfail」というエラーが表示されます。

ありがとう!

私が使用するトンネル方式は次のとおりです。http://sourceforge.net/apps/mediawiki/jsch/index.php?title = ProxySSHだから、それを書いた人に感謝します!

コンテキストとして、Androidフォンから学校のサーバーに対して読み取り/書き込みを行いたいと思います。

0 投票する
1 に答える
725 参照

java - Android と JSch: 別の SSH サーバーの背後にある SSH

Android アプリ内で別のサーバーの背後にあるサーバーにアクセスしようとしています。最初のサーバーにアクセスして、ファイルの編集やアップロード/ダウンロードなどを行うことができます。問題は、rsa キーを使用して ssh 経由で 2 番目のサーバーにアクセスすることです。問題は、私の PC でコンパイルされたスタンドアロン プログラムとして、すべて正常に動作することです。つまり、2 番目のサーバーにアクセスして、1 番目のサーバーでできるすべてのことを行うことができました。Androidアプリに実装しようとすると、2番目のサーバーにアクセスできず、最初のサーバーにしかアクセスできません。同じキーを使用しているにもかかわらず、JSch エラー: Auth Fail が表示されます。以前 PC で行ったのと同じことを行っているはずです。これは Android の制限ですか? 回避策はありますか? 関連する場合、以前は機能していたので、最初と2番目のサーバーの両方にポート22を使用しました。

0 投票する
1 に答える
185 参照

java - 例外を取得したときにイベントを再びトリガーする方法は?

JSch を使用してリモートの Unix ボックスに接続する Java swing アプリがあります。

ユーザーは、Swing アプリの JTextBox に UNIX ボックスの IP を入力し、アプリの「ログイン」ボタンをクリックする必要があります。

接続に問題がある場合は、ユーザーに別の IP を入力するように求める必要があります。このために、私は JSchExceptions をキャッチし、ユーザーに有効な IP を再度入力するように求めます..そして、ユーザーが別の IP を入力した後、再度ログインを試みます..

私のコードは、ユーザーに JSchException の取得時に IP を再度入力するように求めるまで正常に動作しています...しかし、ActionEvent を再度トリガーしてログインプロセスを再度開始することはできません...

LOGINボタンで使用button.doClick();しましたが、例外としてイベントが再びトリガーされません!!

オンラインでいくつかの例を見た後、私もこれをやろうとしました:

まだ動作していません !!!

何が問題なのですか? イベント自体を再びトリガーするにはどうすればよいですか??

返信ありがとうございます。

0 投票する
1 に答える
1249 参照

java - SSH コマンドに入るサニタイズ/エスケープ引数

プログラムによる SSH コマンドに入力されているパラメーターを適切にサニタイズ/エスケープするには、どうすればよいですか?

たとえば、パス パラメータ -

これが安全ではない理由は、path パラメーターがユーザーがアップロードしたファイルから取得される可能性があるためです。悪意のあるユーザーは技術的に、無効なファイル名のファイルをアップロードする可能性があります。これは事前に確認できますが(現在行っています)、ここでも確認したいと思います。

0 投票する
4 に答える
12410 参照

eclipse - Eclipse で egit を使用してパテのページェントを使用する

Eclipse の「egit」モジュールを介してプライベート リモート SSH git リポジトリにアクセスしようとしています。WindowsでEclipseを実行しています。Eclipse は、認証転送のためにパテの pagent と自動的に連携するようには見えず、egit で使用される SSH のカスタマイズ (たとえば、plink.exe の使用) に関するドキュメントが見つかりません。

putty/plink を使用するように他の Windows git クライアントをセットアップする方法に関する Web 上のドキュメントを見つけました (例: msysgit 用)。

Puttyでサーバーにログインするために常にsshキーを使用しているため、sshキーが正常に機能すると確信しています。

具体的には、Git Repository Viewer を使用し、[Clone Remote Repository] ​​をクリックして、ホスト、リポジトリ パス、プロトコル (ssh)、およびユーザーを入力します。I [次へ] をクリックします。サーバー固有のバナーがポップアップ表示されるので、接続していることがわかります。それから私は

ssh ログインは sshkey のみによるものであるため、これが機能しないのはそのためです (ただし、少なくとも基本を理解したことがわかります)。

egit+pageantで成功した人はいますか? または、それが不可能かどうかを知っていますか?

アップデート

Eclipse には、それが使用する pure-Java SSH (jsch) 実装が内部的にあり、Eclipse に含まれるその実装は (まだ) 認証エージェント プロトコルをサポートしていないため、これは機能しないようです。

を介してプラットフォーム ssh エージェントをサポートするためのいくつかのパッチが提案されています (リンクについては @Janning に感謝します)。この Eclipseバグ 179924を参照してください。更新 #24 には、提案されたパッチに関する次の励ましのメモが含まれています。

http://github.com/にアクセスでき、一部のプロジェクトは putty の pageant で egit でクローンできることを確認しました。

完全にはわかりませんが、現在のハングアップは、純粋な Java UNIX ドメイン ソケット ライブラリに関するライセンスの問題と、Eclipse が使用する純粋な Java SSH 実装のアップグレードのようです。

より最近のバグ (番号 360663 ) は、必要なバージョンの jsch が Eclipse にコミットされたことを示しています (そして、私が知る限りでは、次のリリースの一部になるはずであり、2012 年 6 月末になるはずです)。

0 投票する
1 に答える
1940 参照

android - Android で bouncycastle ではなく spongycastle を使用する Jsch

現在、パスワードを使用してssh経由でルーターに接続するAndroidアプリケーションがあります。キーを使用できるようにこれを改善しようとしていますが、実際の問題があります。私が理解していることから、アンドロイドに含まれている bouncycastle のバージョンは不自由なバージョンであり、このため ssh キーは jsch では機能しません。より完全な実装であると主張するspongycastleを見てきました。以下は、基本的には bouncycastle を使用した場合と同じ結果であり、Auth Fail です。

何が問題なのかを突き止めるのに役立つjschからのログ情報はあまりありません。

これにはかなり標準的なコードを使用していると思います:

OnCreate では、元の bouncycastle プロバイダーを削除しています

次に、接続を試みる直前に ID を追加します

誰もこれを成功させましたか?私は何かを忘れていますか?

ポイントの追加情報を編集:

コメントで言ったように、キーを切り替えてsshdバージョンOpenSSH_5.3p1 Debian-3ubuntu7でテストしても、キーが試行されていないのではないかと疑っています

キーを使用しようとする試みは見られませんが、PC からは

key メソッドが使用されていることがわかります。以下は、私がテストに使用しているコードで、きれいではありませんが機能的です。私はそれが恐ろしいことを知っていますが、パスワードには authtype == AUTHENTICATION_METHOD_KEY の場合に使用されるキーのファイル名とパスが含まれています