2016-05-20 18 views
0

私は、サーバーに接続するSSH複数回にできる午前:(---クライアント--->ゲートウェイ--->サーバー1 ----> server2の)JSchで複数回sshを実行する方法:ポート転送、sshコマンド、またはSSHトンネル?端末による

しかし、今までそれはJavaのJSchライブラリを介して行うには、どのように行くのですか? まずポートフォワーディングを試してみましたが、端末上で、私は(ssh-R -Lパラメータを設定しない)ことは致しておりません。

は、その後、私は質問How to SSH to a server behind another SSH server using JSch?に出くわしたが、私は、TCPトンネルを作成する方法を理解していません!

答えて

1

ポートフォワーディングは行くための最良の方法です。

sshコマンドと入力すると、2番目のセクションに手動で接続するので、端末でポート転送を実行しません。 JSchを使ってそれを自動化することはできますが、人間をシミュレートしようとする確かに信頼できる方法ではありません。最初のssh(端末)ステップをJSchに置き換えたい場合は、同じ理由でsshを2番目のステップに使用しないでください。あなたがリンクしている質問のaccepted answerも、あなたがそれを試みるのを嫌がるものです。すべてがうまくいくと、うまくいくかもしれませんが。しかし、いったん問題が発生すると、自動的に問題を処理することになります。たとえば、2番目のサーバーのホストキー検証を自動化することはほとんどできません。

SSHトンネルポートフォワーディングです。しかしおそらく前述のProxySSH(これ以上存在しないように思われる)は、ローカルポートを開かずに内部的に行いましたが、第2セッションで直接「ポート転送」チャネルを使用しました。しかし、これは実装が複雑すぎる方法です。簡単なポートフォワーディングに固執する。

+0

私は、ポート転送を使用すると、このマルチホップトンネリングを行うにはいくつかのリソースを与えることができ、JSCHで唯一の方法であることを知っていますか? – curio1729

+0

私はそのようなリソースを認識していません。まず、[シングルホップポート転送](http://stackoverflow.com/q/37357602/850848)でもできることを確認してください。 –

+0

私はシングルホップを行うことができます – curio1729

関連する問題