Export display Unix via connexion ssh avec JSCH
Bonjour à tous,
Je tente de me connecter en SSH (via JSCH) à un serveur tournant sous Centos, afin de lancer une application.
La connexion se passe bien, mais je n'ai pas l'affichage de mon application, alors que le process est bien lancé sur le serveur
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
String commandToLaunch ="bash -c \"source $HOME/.profile; launchApp.sh\"";
try {
//SSH variable connexion
JSch jsch = new JSch();
//host + ip adress + port
sessionSequence = jsch.getSession(username, ipAdress, 22);
//connexion password + configuration
sessionSequence.setPassword(password);
sessionSequence.setConfig("StrictHostKeyChecking", "no");
sessionSequence.connect();
//execute script
executeLaunchChannel = (ChannelExec) sessionSequence.openChannel("exec");
//Execute command
executeLaunchChannel.setCommand(commandToLaunch);
executeLaunchChannel.setInputStream(System.in);
executeLaunchChannel.setOutputStream(System.out);
executeLaunchChannel.setErrStream(System.err);
executeLaunchChannel.setXForwarding(true);
InputStream in = executeLaunchChannel.getInputStream();
//execution
executeLaunchChannel.connect();
} |
J'ai fais pas mal de recherche sur le net, et certaines personnes rajoutaient des options au channel et à la session :
Code:
1 2 3 4 5 6 7 8
|
[...]
sessionSequence.setX11Host("IP_Serveur_Centos");
sessionSequence.setX11Port(6000); //choisi par mes soins, bien que j'en ai essayé plusieurs
[...]
executeLaunchChannel.setPty(true);
executeLaunchChannel.setPtyType("xterm");
executeLaunchChannel.setAgentForwarding(true); |
Mais même avec ces options, je n'ai pas de display.
J'ai aussi tenté de rajouté le display directement dans les commandes que je passe, mais sans success
Code:
1 2
|
String commandToLaunch ="bash -c \"source $HOME/.profile; export DISPLAY=IP:6000.0; launchApp.sh\""; |
Enfin, au niveau de la configuration du serveur, certains liens/threads évoquaient la configuration du service SSH sur le serveur. Mais de ce point de vue là, d'autres applications lancés à distance (mais pas via JAVA/JSCH) s'affichent bien sur le poste client.
Ce qui me fait dire, peut être à tort, que cela vient de mon code.
Avez-vous quelques idées ?
Merci