2010-11-12 41 views
1

J'utilise actuellement JSch comme bibliothèque pour me connecter à mon serveur distant. Dans l'un des scénarios, je devrais pouvoir me connecter à un server2, via server1. C'est-à-dire que je devrais d'abord me connecter à server1, puis ssh à un autre serveur (server2) et exécuter ma commande. De plus, je devrais parfois être capable de me connecter à un server3 à partir du serveur2. Donc, fondamentalement, je cherche un moyen d'avoir une connexion ssh à plusieurs niveaux que je ne sais pas comment gérer en Java, car je ne peux pas exécuter plus d'une commande dans chaque canal Exec d'une session.Connexion SSH à plusieurs niveaux en Java

Tout aperçu sera apprécié.

Merci, Reza

Répondre

2

Ainsi, vous pouvez déjà SSH sans problèmes, et vous êtes familiarisé avec l'envoi d'une commande à exécuter sur ce serveur.

Ceci est juste une question de récursivité à travers les couches du serveur, comme les poupées russes. Supposons que la commande que vous voulez exécuter sur server2 est ls (bien que la commande réelle n'affecte pas cet exemple). Ensuite, si vous étiez déjà connecté au serveur 1, vous exécuteriez cette commande en tant que

$ ssh server2 ls 

droite?

Et là, nous avons les deux parties de la solution, car vous savez déjà comment exécuter une commande lors de la connexion à un hôte. SSH dans le serveur 1 et exécutez cette commande, et vous avez votre connexion à plusieurs niveaux de travail.

Pour étendre ceci à trois (ou plus) hôtes, l'idée est la même. Si vous étiez déjà connecté à server2 et je voulais exécuter la commande, vous lancerez la

$ ssh server3 ls 

Donc, si vous êtes sur le serveur 1, vous lancerez la

$ ssh server2 ssh server3 ls 

donc votre commande globale est

$ ssh server1 ssh server2 ssh server3 ls 

et à ce stade, je pense qu'il est clair comment cela peut être étendu à des niveaux arbitraires ... :-)

+0

Merci, il résolu une partie o f mon problème, mais encore, il semble que je ne peux pas me connecter à la troisième machine, au moins par le biais de putty (qui obtient le mot de passe du clavier). Je devrais essayer de voir si je peux le résoudre avec des connexions de clés privées. – RezaPlusPlus

+0

OK, je pense que cela va résoudre mon problème complètement: http://linuxproblem.org/art_9.html Merci encore. – RezaPlusPlus