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

Shell et commandes GNU Discussion :

Communication avec une appliance


Sujet :

Shell et commandes GNU

  1. #1
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut Communication avec une appliance
    Bonjour,

    j'aimerais récupérer dans un fichier la sortie standard d'une commande lancée dans une appliance.
    L'appliance est un système propriétaire sur lequel je passe des commandes propriétaires.

    Dans la théorie, serait-il possible de passer par un serveur linux et lancer cette commande propriétaire et récupérer le résultat de la commande sur le serveur linux ?

    Que faut-il comme pré-requis ?

    Merci d'avance pour vote aide.

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 730
    Par défaut modération
    Bonjour,

    sois plus précis, s'il te plaît.

  3. #3
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    je pars d'une serveur Linux : A
    j'accède à l'appliance : B (serveur avec un OS proprétaire)
    Sur le serveur B, je lance la commande : filesys show space (qui est une commande, je le rappelle, propre au serveur B qui est l'appliance).
    Cette commande donner un résultat sur la sortie standard du serveur B (donc de l'appliance).
    J'aimerais récupérer cette sortie standard dans un fichier sur le serveur A (qui lui est un serveur linux) car dans l'appliance B, cette fonctionne de récupération de sortie standard dans un fichier n'existe pas.

  4. #4
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    A bien y réfléchir, je n'aurais peut-être pas dû vous embrouiller avec une appliance.
    je vais simplifier la question.
    J'ai deux serveurs linux A et B
    j''aimerais, à partir du serveur Linux A, lancer une commande quelconque sur le serveur linux B, et récupérer le résultat de cette commande sur le serveur A dans un fichier text.
    Est-ce possible ?

  5. #5
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 228
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 228
    Par défaut
    Citation Envoyé par sam01 Voir le message
    A bien y réfléchir, je n'aurais peut-être pas dû vous embrouiller avec une appliance.
    Tu ne nous embrouilles pas, au contraire, car en simplifiant, la question primordiale n'est pas pour autant résolue : le serveur B peut-il générer un fichier texte contenant le résultat de ta commande ?
    (le reste, lecture de ce fichier par le serveur A n'est que de la bricole, avec par ex. un dossier réseau partagé et donc commun aux deux serveurs).

    Tout dépend donc de... ton appliance.
    C'est peut-être à ceux qui l'ont écrite qu'il aurait fallu poser la question.

    Car en résumé, l'idée c'est, au prompt : execute_appliance > chemin/fichier.txt, à charge pour le serveur A de scruter périodiquement chemin/ pour voir si fichier.txt y est créé.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 730
    Par défaut
    comment accèdes-tu au serveur B ? avec ssh ?

  7. #7
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    Oui j'y accède via ssh.
    Mais justement sur l'appliance, je ne sais pas comment mettre la sortie standard dans un fichier ?
    Je connais juste la commande qui permet d'afficher mes valeurs désirées.
    Je ne sais même pas si c'est possible.
    Est-ce que cette sortie standard peut être récupérée sur mon serveur linux A ?

  8. #8
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 300
    Par défaut
    Bonjour

    Je ne comprends toujours pas la question. L'utilisateur demande à A de demander à B de faire quelque chose. B ne renvoie-t-il pas sa sortie standard à A en guise de réponse ? Auquel cas la question se résume par "comment mettre la sortie d'une commande de A dans un fichier sur A ?". Mais cela est tellement évident que je doute que ce soit ta question. Donc, dis-nous: où est le point bloquant ?

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 730
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh nomUser@adrServerB 'cmdAppliance --options...' >/cheminAbsolu/versFichier/surServeurA
    le sujet était donc : comment rediriger la sortie d'une commande exécutée via ssh ?

  10. #10
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    Excellent ! C'est bien ça.
    ça fonctionne, j'ai bien mon fichier sur le serveur A qui contient la sortie standard de la commande exécutée sur le serveur B.
    Par contre (hé oui sinon, ça serait trop facile )
    J'ai quelques messages bizarres :
    1) Déjà, comme je veux automatiser l'action, il faudrait que je puisse mettre mon mot de passe sans attendre le prompt
    2) j'ai eu un message de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    The authenticity of host '***** (**.***.**.**)' can't be established.
     
    RSA key fingerprint is 97:8c:1b:f2:6f:14:6b:5c:3b:ec:aa:46:46:74:7c:40.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '***** (**.***.**.**)' (RSA) to the list of
    known hosts.
    C'est grave docteur ?

    Dans le but d'une automatisation (passage des commande dans un script shell) est-ce bloquant ?

    Merci pour tout ;-)

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 23
    Par défaut
    Bonjour,

    Je ne suis pas docteur, mais ce n'est pas grave. C'est même normal. Tu acceptes une fois et le serveur distant s'inscrit dans ton fichier known host.
    Si un jour, l'identité du serveur distant est modifié (changement de machine, ré-attribution du fqdn), tu auras un joli message d'alerte à gérer (2 secondes de temps de gestions si tu es sûr de ton nouveau serveur distant).

    Tiki

  12. #12
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 730
    Par défaut
    la deuxième interrogation est donc : passwordless ssh.
    je te laisse chercher, c'est formateur.

  13. #13
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    Bonjour à tous, je reviens sur ce post car j'ai quand même avancé depuis mon dernier post, mais il me manque un petit quelque chose.
    Je me suis inspiré du site suivant pour générer mes clef ssh : http://www.linux-france.org/prj/edu/...e/ch13s03.html
    On m'a déconseillé d'utiliser sshpass car au changement de mot de passe ça fonctionnera plus.
    Alors j'en arrive à mon souci, je parviens à me connecter au serveur distant mais il me demande une passphrase.
    Du coup, ça ne m'intéresse pas car ça revient au fait à taper un mot de passe.
    Donc je retourne à la case départ.
    Mon but maintenant est d'éviter de taper cette passphrase.
    Je donc suivi les instruction du site que linux-france grâce à la commande ssh-agent.
    Et là ça fonctionne, plus besoin de taper la passphrase. Par contre, quand je me déconnecte et que je me reconnecte, là je dois à nouveau taper la passphrase.
    J'aimerais trouver une solution automatique pour ne pas taper cette passphrase à chaque fois.
    Je rapelle juste que mon but est d'écrire un script que je planifierai via la crontab et du coup, il ne faudrait pas que mon script s'interrompt à cause de cette demande de saisie de passphrase.

    J'ai ajouté cette portion de script dans mon fichier .bash_profile :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ssh-agent -s > /tmp/ssh.keys
    . /tmp.ssh.keys
    rm /tmp/ssh/keys
    mais à ma reconnexion j'ai le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Last login: Tue Jan 21 10:18:24 2020 from m51665.dqfxs.fkt
    cp: cannot stat `/home/gghjj/gbh/.Xauthority': No such file or directory
    chmod: cannot access `/tmp/Xauthority.57906': No such file or directory
    -bash: /tmp.ssh.keys: No such file or directory
    rm: cannot remove `/tmp/ssh/keys': No such file or directory
    Merci d'avance pour votre aide.

  14. #14
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 730
    Par défaut
    il faut générer des clés ssh avec ssh-keygen, et ne pas renseigner la passphrase.
    ensuite, il faut ajouter la clé publique sur la machine distante dans le fichier .ssh/authorized_keys

    les connexions suivantes se feront sans mot de passe et sans passphrase.

  15. #15
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 300
    Par défaut
    Voler les clés de voiture est équivalent à voler la voiture, car il n'y a pas de mot de passe sur les clés. La clé privée SSH n'est jamais qu'un fichier. La passphrase est une sécurité supplémentaire pour que voler ce fichier ne soit pas suffisant pour s'introduire dans le système. La sécurité absolue n'existe pas. On ne fait que déplacer le secret. Et la seule façon de déplacer le secret dans ta tête est le mot-de-passe ou la phrase-de-passe. Supprimer la passphrase est une faille de sécurité. La question, maintenant, est de savoir quelles dispositions tu vas mettre en place pour que personne ne vole cette clé privée .

  16. #16
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    c'est ce que j'ai essayé de faire mais je n'ai pas la même clef dans mon id_rs_pub et mon fichier known_hosts.
    Il faudrait que j'écrase la clef dans mon fichier known_hosts.
    J'ai tapé cette commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ssh-keygen -R "hostname"
    ce qui m'a vidé le fichierknown_hosts.

    Mais quand je me reconnecte au serveur distant, il me regénère la mauvaise clef dans le fichier known_hosts. Et je ne sais pas ou il va me récupérer cette mauvaise clef...

  17. #17
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 730
    Par défaut
    known_hosts entre en jeu pour toutes les communications via ssh (il "identifie" le serveur), mais pas au niveau de l'identification de l'utilisateur par clés.

    Citation Envoyé par le sophrologue
    d'abord, fais une pause. on va y arriver.
    ensuite, inspire profondément, lentement. on va y arriver.
    puis... expire(!) doucement. on va y arriver.
    on va y arriver.


    - nettoie le known_hosts du client des "enpreintes" correspondant au serveur.
    - nettoie l'authorized_keys du serveur des "empreintes" correspondant à ton poste client.
    - refais la manip que j'ai indiquée plus tôt.

  18. #18
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    Bon ben Nickel, ça fonctionne.
    J'ai essayé de faire la même chose avec un serveur AIX distant (toujours avec le même serveur linux source).
    Cette fois j'ai ce message d'erreur au moment de ma tentative de copie de la clef publique ;


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    cp: cannot stat `/home/scdff/user/.Xauthority': No such file or directory
    chmod: cannot access `/tmp/Xauthority.5795': No such file or directory
    la commande que je tape (depuis le serveur AIX) est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ssh scdff\\user@linux1 'cat .ssh/id_rsa.pub' >> /home/grp/user/.ssh/authorized_keys

  19. #19
    Membre éprouvé
    Inscrit en
    Mars 2004
    Messages
    1 937
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 937
    Par défaut
    Ben en fait ça fonctionne, malgré le message d'erreur. Bizarre
    Du coup c'est tout bon.

    Merci pour tout ;-)

  20. #20
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 730
    Par défaut
    une commande dans un fichier de conf du shell qui ferait un chmod ?
    si le contenu du $HOME de l'utilisateur n'est pas énorme : grep -rl chmod "$HOME", ou grep -rl '/tmp/.Xauthority "$HOME"à voir...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/03/2009, 10h36
  2. Réponses: 0
    Dernier message: 23/11/2008, 01h29
  3. Pb communication avec une base Access
    Par Syrrus dans le forum Access
    Réponses: 1
    Dernier message: 06/06/2007, 11h59
  4. Communication avec une application externe
    Par Lethal dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/02/2007, 19h30
  5. [c#]Communication avec une BD
    Par chasse dans le forum Accès aux données
    Réponses: 4
    Dernier message: 20/12/2006, 00h41

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