目前我们有2台Unix服务器A和B.要连接到B服务器,最初我们先用连接服务器A,然后我们将使用SSH登录到JumpHost B Unix提示符。使用SSH通过另一台服务器通过SSH连接到服务器
现在我工作在一个简单的Java工具,它必须从服务器B.
下载的文件在示例代码中,我从下面的链接了,如果我通过乙服务器的主机细节,主机连接失败。
当我传递一个服务器的主机细节的连接成功,并能够下载存在于文件服务器A.
我需要了解如何连接到服务器A的指针,然后服务器B通过Java和下载从服务器B.
目前我们有2台Unix服务器A和B.要连接到B服务器,最初我们先用连接服务器A,然后我们将使用SSH登录到JumpHost B Unix提示符。使用SSH通过另一台服务器通过SSH连接到服务器
现在我工作在一个简单的Java工具,它必须从服务器B.
下载的文件在示例代码中,我从下面的链接了,如果我通过乙服务器的主机细节,主机连接失败。
当我传递一个服务器的主机细节的连接成功,并能够下载存在于文件服务器A.
我需要了解如何连接到服务器A的指针,然后服务器B通过Java和下载从服务器B.
文件可以使用库。首次进口的依赖:
<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);
是不是可以通过JSch实现多个SSH连接? –
这是可能的。只需重复以上代码片段即可获得所需的每个SSH连接。 –
可以通过jsch setportforwarding方法实现多个jumphost连接。 –
你实际上寻找的是所谓的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”。
正确英文。 – rghome