Portweiterleitung ist der beste Weg zu gehen.
Sie führen keine Portweiterleitung im Terminal durch, da Sie sich manuell mit dem zweiten Abschnitt verbinden, indem Sie den ssh
Befehl eingeben. Während Sie das mit JSch automatisieren können, ist es nicht wirklich eine zuverlässige Möglichkeit, ein menschliches Wesen zu simulieren. Wenn Sie den ersten Schritt ssh
(terminal) durch JSch ersetzen möchten, wollen Sie aus dem gleichen Grund nicht ssh
für den zweiten Schritt verwenden. Die accepted answer in der Frage, die Sie verknüpfen, rät Ihnen auch davon ab, das zu versuchen. Wenn alles in Ordnung ist, könnte es funktionieren. Aber sobald ein Problem auftritt, werden Sie Probleme haben, automatisch damit umzugehen. Beispielsweise können Sie die Hostschlüsselverifizierung für den zweiten Server kaum automatisieren. Die SSH-Tunnel ist Portweiterleitung. Aber vielleicht hat die erwähnte ProxySSH
(die anscheinend nicht mehr existiert) intern ohne einen lokalen Port zu öffnen, aber den "Port forwarding" -Kanal direkt in der zweiten Sitzung verwendet. Aber das ist eine viel zu komplizierte Implementierung. Bleiben Sie bei der einfachen Portweiterleitung.
Ich weiß, dass Port-Forwarding der einzige Weg in JSCH ist, können Sie einige Ressourcen für diese Multi-Hop-Tunneling geben? – curio1729
Ich bin mir dieser Ressource nicht bewusst. Stellen Sie zunächst sicher, dass Sie sogar eine [Port-Forwarding-Funktion für einzelne Hops] ausführen können (http://stackoverflow.com/q/37357602/850848). –
Ich kann Single Hop tun – curio1729