Domanda

Attualmente sto usando JSch come la libreria per la connessione al server remoto. In uno degli scenari, dovrei essere in grado di accedere a un server2, attraverso server1. Cioè, dovrei prima il login per server1, poi ssh a un altro server (server2) ed eseguire il mio comando. Inoltre, a volte dovrei essere in grado di connettersi a un server3 da server2.

Quindi, in sostanza, sto cercando un modo per avere un collegamento ssh multilivello che io non so come gestire in Java, in quanto non in grado di eseguire più di un comando in ogni canale Exec di una sessione.

Tutta la comprensione sarà apprezzato.

Grazie, Reza

È stato utile?

Soluzione

Così si può già SSH per server1 senza problemi, e si ha familiarità con l'invio di un comando da eseguire sul server.

Questa è solo una questione di ricorsione attraverso gli strati di server, come le bambole russe. Supponiamo che il comando che si desidera eseguire su server2 è ls (anche se il comando effettivo non influisce questo esempio). Quindi, se si sta già eseguito l'accesso server1, dovrete eseguire questo comando come

$ ssh server2 ls

giusto?

E proprio lì abbiamo entrambe le parti della soluzione, perché sai già come eseguire un comando quando si accede in un ospite. SSH nel server 1 ed eseguire quel comando, e tu hai la tua su più livelli di lavoro di accesso.

Per estendere questo per tre (o più) padroni di casa, l'idea è la stessa. Se si sta già eseguito l'accesso server2 e voleva eseguire il comando, che ci si esegue

$ ssh server3 ls

Quindi, se siete su server 1, che ci si esegue

$ ssh server2 ssh server3 ls

, quindi, il vostro comando generale è

$ ssh server1 ssh server2 ssh server3 ls

e, a questo punto penso che sia chiaro come questo possa essere esteso a livelli arbitrari ...: -)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top