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

z/OS Discussion :

Connexion SSH vers Linux depuis zOs avec BPXBATCH


Sujet :

z/OS

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Points : 266
    Points
    266
    Par défaut Connexion SSH vers Linux depuis zOs avec BPXBATCH
    Bonjour,

    Pour des nouveaux besoins projet, nous aurions besoin de pouvoir lancer des commandes sur un serveur Linux depuis z/Os (idéalement à la fin d'un traitement). Et ceci nécessite une connexion ssh entre les 2 mondes machines.
    Après quelques recherche, je suis tombé sur l'utilitaire BPXBATCH qui permet de lancer une commande Unix depuis TSO.
    Cependant, je n'ai pas vraiment trouver d'exemple de ce que je veux faire...

    Je vais chercher et tenter des trucs la semaine prochaine, mais si certains ici ont déjà été confronté à la problématique, je suis ouvert à tout conseils et remarques.

    Merci pour vos retours.

  2. #2
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    J'ai voulu dans le passé "lancer" des commandes via ssh et depuis un script...
    Première chose "évidente" (mais qui ne l'était pas pour moi à ce moment-là) : aucun mot de passe n'est possible à faire passer, il faut tout faire avec des clés ssh.
    Je n'ai jamais réalisé ça personnellement, mais il doit pouvoir exister quelques exemples sur le net (après pour adapter les exemples fais sur le tas avec la PKI en place... c'est une autre histoire).
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  3. #3
    Membre chevronné Avatar de bernard59139
    Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2006
    Messages
    950
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Octobre 2006
    Messages : 950
    Points : 2 064
    Points
    2 064
    Par défaut
    bonjour

    La doc est complète: BPXBATCH.
    Je te conseille de tout lire, certains "trucs" de base y sont très bien expliqué.

    Souvent j'ai vu utilisé AOPBATCH à la place de BPXBATCH, c'est à peu près le même programme, mais pas strictement le même. En général, on ne voit pas de différence.

    Si tu dois faire de la programmation depuis MVS, dans des rexx utilise l'interface BPXWUNIX.

    Si des caractères bizarres (il y a en a bcp dans le monde unix) doivent être utilisés, bascule en code page 1140, au moins pendant la phase de mise au point des jobs.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Points : 266
    Points
    266
    Par défaut
    Bonjour,

    Merci pour ces conseils (rien que le coup du code page 1140 m'a sûrement épargner des heures de prise de tête).

    Et en fait, le lancement de commande est relativement simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ****** ***************************** Top of Data ******************************
    000001 //TESTSSH    JOB TSO,CLASS=A,MSGCLASS=H,REGION=0M,NOTIFY=&SYSUID        
    000002 //*                                                                     
    000003 //BPXBATCH   EXEC PGM=BPXBATCH                                          
    000004 //STDOUT     DD SYSOUT=*                                                
    000005 //STDERR     DD SYSOUT=*                                                
    000006 //STDPARM    DD *                                                       
    000007 SH ssh user@host echo $PATH                         
    000008 //*                                                                     
    ****** **************************** Bottom of Data ****************************
    me permet déjà d'avoir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ********************************* TOP OF DATA **********************************
    FOTS1370 Host key verification failed.                                          
    ******************************** BOTTOM OF DATA ********************************
    donc la commande s'éxecute bien, et surtout le lien réseau est bien établi.

    Je me bats (à temps partiel malheureusement) depuis hier pour gérer l'échange de clé rsa. Les .ssh étant vérouillés dans tous les sens c'est plus de la bataille de bureau qu'un problème technique qui me bloque...

    Mais ça me laisse le temps de réfléchir, et j'ai pensé que malgré :
    - un user technique cible sans shell et confiner par SELinux
    - un user technique sur le Z bien verrouiller aussi
    - un firewall sur ip sur la machine cible
    - un possible filtrage mac
    - une encryption des données
    et bien, il me semble que ssh va quand même toujours me demander le mdp du user cible, et ça... bah BPXBATCH ne me permets pas de le gérer... où du moins j'ai pas encore trouver comment.

    Si vous avez une idée, je suis preneur.

    Merci !

  5. #5
    Membre expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Points : 3 532
    Points
    3 532
    Par défaut
    C'est l'échange de clés qui suffira !

    Le mot de passe n'est demandé QUE SI l'authentification ne se fait pas par clé ! (par défaut sur les Linux & BSD non configurés)

    Votre première réponse est donc LA raison qui évitera le mot de passe !

    La preuve en cherchant "ssh sans mot de passe" sur de google, 1er lien :
    http://www.generation-linux.fr/index...e-mot-de-passe

    Il s'agit bien d'un échange de clés.
    Il faudra donc penser à qui/quoi fera quels échanges, etc...

    EDIT : Au pire, il doit être possible de stocker la clé quelque part soi-même (mais c'est risqué) et de le fournir en paramètre !
    Si c'est OpenSSH qui fournit le portage sur z/OS, voici la doc : OpenSSH ssh(1)
    L'option -i renvoie vers le fichier à utiliser


    EDIT2 : je viens de relire....
    N'oubliez pas que SSH fait déjà du chiffrement ! :o
    Par contre oui, si votre user distant n'a pas de shell et est bloqué, c'est foutu.
    Secure SHell nécessite obligatoirement un utilisateur disponible et accessible
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Points : 266
    Points
    266
    Par défaut
    Alors, le thread linké est un peu vieux et je n'ai pas le temps de vérifié son contenu.
    Mais à ma connaissance, même avec échange de clé, le mot de passe est toujours demandé et c'est ce qui se passe sur mes connexions entres machines Linux actuelle.
    Pour moi (mais je ne suis pas un expert), le seul moyen de se passer du mot de passe en connexion ssh est l'utilisation de passphrase avec le ssh-agent qui tourne sur le client ce que je veux éviter.

    De toute façon, j'ai eu une idée entre temps : le BPXBATCH peux m'exécuter un script sh local qui peut se charger de la connexion et tout ce qui va avec

  7. #7
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 280
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 280
    Points : 12 729
    Points
    12 729
    Par défaut
    Bonjour,

    Coté ssh, c'est du coté serveur que l'on décide si l'on passe par un mot de passe pour l'authentification ou par une clé.

    Ensuite, si le serveur accepte la connection par clé (ce qui semble être le cas puisque tu passe par un ssh-agent), alors ce n'est pas un mot de passe qui peut être demandé dans ce cas mais plutot ce que l'on appelle une passphrase et ceci uniquement si la clé public à été protégée (cryptée) par la dite passphrase, sinon il n'y aura pas de demande de mot de passe ou de passphrase en passant par une clé.
    Cordialement.

  8. #8
    Membre actif
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    138
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 138
    Points : 266
    Points
    266
    Par défaut
    Bon en fait, c'est tout simple !

    Le plus compliqué étant les échanges de clé pour la connexion ssh, mais sinon pour l'utilisation du BPXBATCH, le JCL déjà montré plus haut suffit.

    JCL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ****** ***************************** Top of Data ******************************
    000100 //TESTSSH  JOB TSO,CLASS=A,MSGCLASS=H,REGION=0M,NOTIFY=&SYSUID,         
    000200 //           USER=USSUP01                                               
    000300 //BPXBATCH   EXEC PGM=BPXBATCH                                          
    000400 //STDOUT     DD SYSOUT=*                                                
    000500 //STDERR     DD SYSOUT=*                                                
    000600 //STDPARM    DD *                                                       
    000700 SH /dossierduscript/testssh.sh paramètres du script                                   
    000800 //*                                                                     
    ****** **************************** Bottom of Data ****************************
    Script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ssh -i /dossierdesclésrsa/id_rsa user@hoteDistante -oUserKnownHostsFile=/dossierdesclésrsa/known_hosts commande_distante
    J'ai explicité les dossiers des clés RSA parce que le user que j'utilise n'a pas de home accessible cependant il est techniquement possible d'utiliser le ".ssh/" standard.

    Le BPXBATCH ne permet l'exécution d'une seule commande unix par step, donc si on veut en lancer plusieur, il est nécessaire de faire un script mais dans le cas d'une commande unitaire, le script est optionnel et la commande peut être passée directement en SYSIN

    PI : pour ne pas avoir la demande de mdp, il faut que la clé rsa publique locale soit dans le fichier authorized_keys du user accédé sur la machine distante.

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

Discussions similaires

  1. Connexion SSH depuis Windows vers Linux
    Par FabaCoeur dans le forum Réseau
    Réponses: 7
    Dernier message: 05/11/2010, 14h29
  2. Connexion SSH sous linux
    Par lamou23 dans le forum Linux
    Réponses: 1
    Dernier message: 22/01/2010, 17h38
  3. Connexion SSH vers un switch
    Par heavenvibes dans le forum Langage
    Réponses: 5
    Dernier message: 15/06/2009, 12h22
  4. Export vers excel depuis JSF avec netbeans
    Par Evenmor dans le forum JSF
    Réponses: 11
    Dernier message: 29/05/2008, 21h28
  5. Connexion à une install Linux depuis Windows
    Par ploxien dans le forum PostgreSQL
    Réponses: 10
    Dernier message: 13/06/2007, 21h52

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