2016-12-19 196 views
0

目前我们有2台Unix服务器A和B.要连接到B服务器,最初我们先用连接服务器A,然后我们将使用SSH登录到JumpHost B Unix提示符。使用SSH通过另一台服务器通过SSH连接到服务器

现在我工作在一个简单的Java工具,它必须从服务器B.

下载的文件在示例代码中,我从下面的链接了,如果我通过乙服务器的主机细节,主机连接失败。

当我传递一个服务器的主机细节的连接成功,并能够下载存在于文件服务器A.

我需要了解如何连接到服务器A的指针,然后服务器B通过Java和下载从服务器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方法实现多个jumphost连接。 –

0

你实际上寻找的是所谓的Overthere一Jumpstation。

要连接这样的:客户端 - >服务器A - >服务器B

使用overthere你可以设置该连接如下:

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”。

相关问题