2016-12-19 9 views
0

現在、2つのUnixサーバーAとBがあります。Bサーバーに接続するには、まずサーバーAを接続してから、 Unixプロンプト。Javaの別のサーバーを経由してサーバーにSSHを使用して接続

今私は、私はBサーバのホストの詳細を渡すと、私は下のリンクから得たサンプルコードではサーバB

からファイルをダウンロードする必要がありますJavaで簡単なツールに取り組んでいますホスト接続が失敗しています。

私は、サーバーのホストの詳細を渡すと、接続が、私は、Javaおよびダウンロードを介してサーバA、サーバーBに接続する方法についてのポインタを必要とする成功し、サーバA.

に存在するファイルをダウンロードすることができますサーバB

SSH Connection Java

+0

英語を修正してください。 – rghome

答えて

0

からファイルがあなたは​​ライブラリを使用することができます。

<dependency> 
    <groupId>com.xebialabs.overthere</groupId> 
    <artifactId>overthere</artifactId> 
    <version>4.4.2</version> 
</dependency> 

...そして、あなたの切断(A、B、など)に接続します:最初の依存関係をインポート

ConnectionOptions options = new ConnectionOptions(); 
options.set(ConnectionOptions.PASSWORD, passwd); 
options.set(ConnectionOptions.CONNECTION_TIMEOUT_MILLIS, connectionTimeout); 
options.set(ConnectionOptions.USERNAME, login); 
options.set(ConnectionOptions.ADDRESS, host); 
options.set(ConnectionOptions.OPERATING_SYSTEM, OperatingSystemFamily.UNIX); 
options.set(SshConnectionBuilder.CONNECTION_TYPE, SshConnectionType.SCP); 
OverthereConnection connection = Overthere.getConnection(SshConnectionBuilder.SSH_PROTOCOL, options); 
+0

JSch経由で複数のSSH接続を行うことはできませんか? –

+0

可能です。必要な各SSH接続の前にスニペットを繰り返すだけです。 –

+0

複数のジャンパー接続は、jsch setportforwardingメソッドによって実現できます。 –

0

あなたが実際に探しているものは、Overthere Aで呼ばれているものですジャンプステーション。あなたができるセットアップは、接続が次のようにすることをoverthere>サーバーB

使用 - >サーバーAは - クライアント:

ConnectionOptions jumpStationOptions = new ConnectionOptions(); 
jumpStationOptions.set(ConnectionOptions.ADDRESS, "Server A"); 
jumpStationOptions.set(ConnectionOptions.USERNAME, "Username A"); 
jumpStationOptions.set(ConnectionOptions.PASSWORD, "Password A"); 
jumpStationOptions.set(ConnectionOptions.PROTOCOL, "ssh-jumpstation"); 
jumpStationOptions.set(ConnectionOptions.OPERATING_SYSTEM, OperatingSystemFamily.UNIX); 
ConnectionOptions options = new ConnectionOptions(); 
options.set(ConnectionOptions.PASSWORD, "Password B"); 
options.set(ConnectionOptions.USERNAME, "Username B"); 
options.set(ConnectionOptions.ADDRESS, "Server B"); 
options.set(ConnectionOptions.OPERATING_SYSTEM, OperatingSystemFamily.UNIX); 
options.set(SshConnectionBuilder.CONNECTION_TYPE, SshConnectionType.SCP); 
options.set(ConnectionOptions.JUMPSTATION, jumpStationOptions); 
OverthereConnection connection = Overthere.getConnection(SshConnectionBuilder.SSH_PROTOCOL, options); 

この設定は、 "サーバA" を設定します

あなたは、このように接続したいです「サーバB」に到達するジャンプステーションとして使用することができます。

関連する問題