1

現在、リモート サーバーに接続するためのライブラリとして JSch を使用しています。シナリオの 1 つで、server1 を介して server2 にログインできるはずです。つまり、最初に server1 にログインし、次に別のサーバー (server2) に ssh してコマンドを実行する必要があります。さらに、server2 から server3 に接続できる場合もあります。

したがって、基本的に、セッションの各 Exec チャネルで複数のコマンドを実行できないため、Java で処理する方法がわからないマルチレベルの ssh 接続を確立する方法を探しています。

どんな洞察も高く評価されます。

ありがとう、レザ

4

1 に答える 1

2

そのため、問題なく にSSH で接続できserver1、そのサーバーで実行するコマンドの送信に慣れています。

これは、ロシアの人形のように、サーバー レイヤーを介した再帰の問題です。実行したいコマンドserver2ls(実際のコマンドはこの例には影響しませんが) であると仮定しましょう。次に、すでに server1 にログインしている場合は、このコマンドを次のように実行します。

$ ssh server2 ls

右?

ホストにログインするときにコマンドを実行する方法はすでにわかっているので、ソリューションの両方の部分があります。サーバー 1 に SSH 接続してそのコマンドを実行すると、マルチレベル ログインが機能します。

これを 3 つ (またはそれ以上) のホストに拡張する場合、考え方は同じです。すでに server2 にログインしていて、コマンドを実行したい場合は、次のように実行します。

$ ssh server3 ls

したがって、サーバー 1 を使用している場合は、次のように実行します。

$ ssh server2 ssh server3 ls

したがって、全体的なコマンドは

$ ssh server1 ssh server2 ssh server3 ls

この時点で、これを任意のレベルに拡張する方法は明らかだと思います... :-)

于 2010-11-12T10:41:50.903 に答える