IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Lancement d'un script sur un autre PC


Sujet :

Java

  1. #1
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut Lancement d'un script sur un autre PC
    Bonjour,

    Explication de ce que je suis entrain de faire:
    J'ai actuellement un programme JAVA qui tourne sur Raspberry.
    J'aimerais que ce programme à un certain moment lance un script mais qui se trouve sur un autre PC qui tourne sur Windows. (Le script se trouve sur Windows).

    Est-ce que quelqu'un aurait une idée ?

    Je serai partie de faire un serveur SSH sur le PC Windows et créer une connexion, mais je trouve rien d'exceptionnel comme serveur SSH pour Windows !

    Merci d'avance !

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Bah si ssh te conviens pas (c'est ce que j'aurais utilisé), il reste toujours l'option http... genre un service web simple, en php par exemple, qui exécute ton script

    Niveau sécurité c'est pas tout à fait ça (faut sécuriser à la mimine, alors que ssh le fait nativement), mais c'est beaucoup moins intrusif

  3. #3
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    Si je veux faire avec SSH ! Mais je n'arrive pas à trouver un bon serveur SSH qui fonctionne... Pour le moment, j'essaie celui la : https://winscp.net/eng/docs/guide_wi...openssh_server

    Il fonctionne pour le moment, mais je n'arrive pas à me connecter en tant que client dessus...

  4. #4
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Quel est le message d'erreur? si tu as suivi la procédure, ça devrait fonctionner...

  5. #5
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    J'ai recommencé la procédure.
    Et en refaisant la procédure, j'ai une erreur côté client qui me dit que la clé publique du serveur a changé... Du coup, il ne veut plus se connecter en ssh sur le serveur...

  6. #6
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    ssh-keygen -R <hostname> sur le client, pour purger la liste des clés d'un host particulier

  7. #7
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    J'ai essayé votre commande et c'est bon, je peux essayer de m'identifier.

    Par contre, quand je m'identifie, il y a toujours marqué Permission denied

    EDIT: J'ai oublié de préciser que mon compte que je veux me connecter est dans un domaine. Je ne sais pas si ça change quelque chose mais je vais tout même préciser

  8. #8
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Aucune idée... essaie en incluant ton domaine dans ton login: "DOMAIN\user"

    Sinon faut éplucher la doc, ou aller voir sur un forum dédié.... "Général Java" c'est pas idéal pour ton sujet

    Sinon, tu peux aussi (pour revenir un peu sur le thème java), implémenter ton propre serveur ssh en utilisant une lib telle que Apache SSHD

  9. #9
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    Ok, merci de votre aide tout de même ! Je vais aller me renseigner sur un autre forum

    Au niveau JAVA, j'ai utilisé JSch comme librairie pour me connecter au serveur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    try{
           JSch jsch = new JSch();
           Session session = jsch.getSession(user, host, port);
           session.setPassword(password);
           session.setConfig("SrictHostKeyChecking", "no");
           System.out.println("Connection...");
           session.connect();
           System.out.println("Connection établi");
           System.out.println("Création SFTP Channel");
           ChannelSftp sftpChannel = (ChannelSftp) session.openChannel("sftp");
           sftpChannel.connect();
           System.out.println("SFTP Channel créer");
    }catch(Exception e){
           System.out.println(e.getMessage());
    }
    Ensuite, bon il y bien sur une erreur parce que mon serveur SSH n'est pas encore au point :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UnknownHostKey: <hostname>. RSA key finger print is <key>

  10. #10
    Membre Expert
    Inscrit en
    Mai 2006
    Messages
    1 364
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 1 364
    Par défaut
    Je ne sais pas si tu as copié/collé ce code mais il faut utiliser "StrictHostKeyChecking" (tu as oublié un 't' dans ton code).

  11. #11
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    Ah merci beaucoup ^^'. J'avais même par remarquer

  12. #12
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    Maintenant, cela me met une autre erreur :

    Quand mon code est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     session.setConfig("StrictHostKeyChecking", "no");
    La réponse est : Auth fail

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     session.setConfig("StrictHostKeyChecking", "yes");
    La réponse est : reject HostKey : <hostname>

  13. #13
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par hwoarang Voir le message
    Je ne sais pas si tu as copié/collé ce code mais il faut utiliser "StrictHostKeyChecking" (tu as oublié un 't' dans ton code).
    Euh nan faut pas faire ça... http://stackoverflow.com/questions/2...ing-no-in-jsch

    Même pour tester... c'est vraiment pas une bonne idée...

  14. #14
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    J'ai trouvé une solution. Au lieu de me connecter sur mon compte qui est dans un domaine, j'ai crée un compte ssh en local et ça a marché. J'ai pu me connecté en SSH depuis mon Raspberry !

    Après, la solution de hwoarang fonctionne mais je sais très bien que c'est pas très secure ^^'.

    Est-ce que tu as une solution Pill_S ?

    J'ai trouvé ça sur le net :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jsch.setKnownHosts("C:\\Users\\cabbott\\known_hosts");

  15. #15
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Oui c'est ça, il faut gérer ton fichier de known_hosts toi-même, mais le chemin devrait plutôt être ${user.home}/.ssh/known_hosts

    ça se manage avec les commandes telles qu'indiquées précédemment (ssh-keygen)

  16. #16
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    J'ai malheureusement une erreur avec cette méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    try{
                JSch jsch = new JSch();
                jsch.setKnownHosts("//home//user//.ssh//known_hosts");;
                Session session = jsch.getSession(user, host, port);
                session.setPassword(password);
     
                System.out.println("Connection...");
                session.connect();
                System.out.println("Connection établi");
    }catch(Exception e){
                System.out.println(e.getMessage());
    }
    Message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    UnknownHostKey : <hostname>.  RSA key fingerprint is <key>

  17. #17
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    Encore un autre truc...

    Quand je veux exécuter mon script, j'ai l'impression que s’exécute sur mon Raspberry alors que je voudrais qui s'exécute sur Windows :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
    try{
     
          ChannelExec channelExec = (ChannelExec)session.openChannel("exec");
          InputStream in = channelExec.getInputStream();
          channelExec.setCommand("java -jar "+remoteFile);
          channelExec.connect();
     
          BufferedReader reader = new BufferedReader(new InputStreamReader(in));
          String line;
          int index = 0;
     
          while ((line = reader.readLine()) != null){
               System.out.println(++index + " : "+ line);
          }
     
          channelExec.disconnect();
          System.out.println("Commande effectuer");
    }catch(Exception e){
          System.out.println(e.getMessage());
    }

  18. #18
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Citation Envoyé par coco1397 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                jsch.setKnownHosts("//home//user//.ssh//known_hosts");;
    pourquoi des double-slashs?

    il faut doubler les backslashs, mais les slashs normaux, jamais...


    et sinon qu'est-ce qui te fait penser que le script s'exécute en local? puisque le serveur est un windows, si tu exécutes des commandes toutes bêtes telles que "dir" (qui n'existe pas sous linux), si c'est ton rasp qui l'exécute alors ça va merder, si la commande fonctionne c'est que c'est bien ton windows qui l'exécute

  19. #19
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    jsch.setKnownHosts("/home/user/.ssh/known_hosts");
    Toujours la même erreur

  20. #20
    Membre actif Avatar de coco1397
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2016
    Messages : 58
    Par défaut
    Après, concernant mon script, il est censé affiché une notification sur Windows !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    Toolkit mainToolkit = Toolkit.getDefaultToolkit();
    SystemTray mainTray = SystemTray.getSystemTray();
    Image trayIconImage = mainToolkit.getImage("");
    TrayIcon mainTrayIcon = new TrayIcon(trayIconImage);
    mainTrayIcon.setImageAutoSize(true);
    try{
           mainTray.add(mainTrayIcon);
           mainTrayIcon.displayMessage("ATTENTION", "Nous avons détécté quelque chose !", TrayIcon.MessageType.WARNING);
    }catch(Exception e){
    }
    System.out.println("Affichage notification");
    System.exit(0);
    Résultat du script:

    Nom : Capture-test.PNG
Affichages : 221
Taille : 4,5 Ko

Discussions similaires

  1. [Smarty] Afficher le module d'un script sur un autre, étant sur le méme serveur
    Par poupou19 dans le forum Bibliothèques et frameworks
    Réponses: 16
    Dernier message: 29/01/2011, 00h37
  2. Problème lors du lancement sur une autre machine
    Par poussinphp dans le forum Visual C++
    Réponses: 4
    Dernier message: 01/05/2007, 13h25
  3. Réponses: 7
    Dernier message: 22/02/2007, 06h02
  4. Comportement différent d'un script sur un autre poste
    Par DoRiane dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/01/2007, 20h41
  5. Réponses: 4
    Dernier message: 30/11/2005, 19h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo