1

我目前正在使用 JSch 作为连接到我的远程服务器的库。在其中一种情况下,我应该能够通过 server1 登录到 server2。也就是说,我应该先登录到 server1,然后 ssh 到另一台服务器(server2)并执行我的命令。此外,有时我应该能够从 server2 连接到 server3。

所以,基本上,我正在寻找一种方法来建立一个我不知道如何在 Java 中处理的多级 ssh 连接,因为我不能在会话的每个执行通道中执行多个命令。

任何见解将不胜感激。

谢谢,礼萨

4

1 回答 1

2

因此,您已经可以server1毫无问题地通过 SSH 访问,并且您熟悉发送命令以在该服务器上运行。

这只是通过服务器层递归的问题,就像俄罗斯娃娃一样。让我们假设您要运行的命令server2ls(尽管实际命令不影响此示例)。然后,如果您已经登录到 server1,您将运行此命令

$ ssh server2 ls

对?

就在那里,我们拥有解决方案的两个部分,因为您已经知道如何在登录主机时运行命令。通过 SSH 连接到服务器 1 并运行该命令,您的多级登录就可以正常工作了。

要将其扩展到三个(或更多)主机,想法是相同的。如果您已经登录到 server2 并想运行该命令,您将运行

$ ssh server3 ls

因此,如果您在服务器 1 上,您将运行

$ ssh server2 ssh server3 ls

因此你的总体命令是

$ ssh server1 ssh server2 ssh server3 ls

在这一点上,我认为很清楚如何将其扩展到任意级别... :-)

于 2010-11-12T10:41:50.903 回答