Java中的多级SSH登录

时间:2010-11-12 10:22:48

标签: java login ssh jsch multi-level

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

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

任何见解都将受到赞赏。

谢谢, 礼

1 个答案:

答案 0 :(得分:2)

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

这只是通过服务器层递归的问题,比如俄罗斯娃娃。假设您要在server2上运行的命令是ls(尽管实际命令不会影响此示例)。然后,如果您已登录到server1,则将此命令作为

运行
$ ssh server2 ls

正确?

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

要将此扩展到三个(或更多)主机,这个想法是一样的。如果您已经登录到server2并想运行该命令,那么您将运行

$ ssh server3 ls

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

$ ssh server2 ssh server3 ls

因此你的整体命令是

$ ssh server1 ssh server2 ssh server3 ls

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