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

Réseau Discussion :

Lancer un script à l'ouverture d'une connexion SSH


Sujet :

Réseau

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Lancer un script à l'ouverture d'une connexion SSH
    Salut,

    Je veux lancer un script a l'ouverture de chaque connexion ssh

    Merci d'avance.

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 602
    Points : 19 511
    Points
    19 511
    Par défaut
    Bonjour,

    tu peux nous en dire plus.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    Je cherche à faire un script qui se connecte sur un serveur
    Quand un utilisateur se connecte a ce serveur par ssh le script affiche une liste des machines distantes autorisées.
    Après l'utilisateur choisit une machine, le script lance une connexion ssh vers la machine choisie c'est à dire l'utilisateur fait une connexion ssh a une machine distante à travers un serveur où il y a notre script (serveur de rebond)

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 602
    Points : 19 511
    Points
    19 511
    Par défaut
    appelle ton script dans /etc/ssh/sshrc, ou écris-le directement dans ce fichier.
    /etc/ssh/sshrc n'a pas à être exécutable, il est appelé par sh. Il doit juste être lisible par tous.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    mais ce fichier existe pas sous debian

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 602
    Points : 19 511
    Points
    19 511
    Par défaut
    alors crée-le.

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Merci bq
    merci N_BaH mais une autre svp mon script affiche un tableau ou il y a un numero le nom (username )et @ IP de la machine distante et il demande a l'utilisateur a entrer le numero de la machine choisis voila le script:
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import os
    import readline
     
     
    def verifier_liste():
            elmt=[]
            fd=open("/home/tilea/Bureau/donnee","rb")
            for ligne in fd.readlines():
                    elmt.append(ligne.split(':')[0:3])
            return elmt
    def separateur(val,lg):
            val=str(val)
            if len(val)>lg-2:
                    val=val[0:(lg-4)]+'..'
            k=int((lg-len(val))/2)
            ch=k*' '+val
            k=lg-(len(ch)-1)
            ch+=k*' '
            return ch
    def affiche_liste(l):
            a="|----------------------------------------------------------------------------|\n"#9-31-34
            b="|         |                               |                                  |\n"
            tab="\n|__Numero_|______Nom d'utilisateur________|__________Adresse  IP_____________|\n\n"
            i=0
            while(i<len(l)):
                    li=l[i]
                    tab+='|'+separateur(i+1,8)+'|'+separateur(li[0],30)+'|'+separateur(li[1],33)+'|\n'+a
                    i+=1
            print tab
            choix=input("\n\t taper le num pour faire la cnx ssh\n")
            return choix
    def start():
            a=verifier_liste()
            choix=affiche_liste(a)
            os.system("ssh %s@%s"%(a[choix-1][0],a[choix-1][1]))
    start()
    et apres la connexion ssh il affiche:
    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
    |__Numero_|______Nom d'utilisateur________|__________Adresse  IP_____________|
     
    |   1     |             root              |            localhost             |
    |----------------------------------------------------------------------------|
    |   2     |             imad              |          102.168.2.36            |
    |----------------------------------------------------------------------------|
    |   3     |           othmane             |          290.123.7.123           |
    |----------------------------------------------------------------------------|
    |   4     |             gogo              |           29.24.36.7             |
    |----------------------------------------------------------------------------|
     
     
    	 taper le num pour faire la cnx ssh
    Traceback (most recent call last):
      File "/bin/Connect_to.py", line 38, in <module>
        start()
      File "/bin/Connect_to.py", line 36, in start
        choix=affiche_liste(a)
      File "/bin/Connect_to.py", line 32, in affiche_liste
        choix=input("\n\t taper le num pour faire la cnx ssh\n")
    EOFError: EOF when reading a line
    et svp si vous avez une idee pour lancer la deuxième connexion ssh automatiquement et merci d'avance

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Points : 358
    Points
    358
    Par défaut
    visiblement ce script ne lit pas l'entrée standard. comment es-t-il lancé ?

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Points : 358
    Points
    358
    Par défaut
    s'il s'agit du sshrc c'est normal qu'il ne lise pas l'entrée standard à en croire la doc :

    SSHRC
    If the file ~/.ssh/rc exists, sh(1) runs it after reading the environment
    files but before starting the user's shell or command. It must not
    produce any output on stdout; stderr must be used instead. If X11
    forwarding is in use, it will receive the "proto cookie" pair in its
    standard input (and DISPLAY in its environment). The script must call
    xauth(1) because sshd will not run xauth automatically to add X11
    cookies.

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut
    sur le fichier sshrc je fait une appelle de script connect_to et j'ai ajouter connect_to au $PATH

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2009
    Messages : 196
    Points : 358
    Points
    358
    Par défaut
    connect_to c'est le script python ?

    Si oui c'est donc normal.


    Si je comprend bien il s'agit de lancer une connexion ssh sur une machine qui lance alors un script qui lance à son tour une connexion ssh vers d'autres machines ?

    pourquoi ne pas simplement lancer le premier ssh avec une commande sur le scrip connect_to ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 602
    Points : 19 511
    Points
    19 511
    Par défaut
    ouaip ;(
    Je n'avais effectivement pas pris en considération que tu voulais exécuter un script interactif.

    Supprime /etc/ssh/shrc, qui n'existait pas, et
    inscris l'appel à ton script python à la fin de /etc/profile, à la suite d'un test sur l'existence de la variable d'environnement SSH_TTY, ainsi tu seras sûr que l'utilisateur ne fait pas qu'envoyer une commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    test -n "$SSH_TTY" && /chemin/connect_to

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut ???
    j'ai pas compris N_BaH

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 602
    Points : 19 511
    Points
    19 511
    Par défaut
    mettre un script dans /etc/ssh/sshrc ne permettra pas à l'utilisateur d'interagir avec le script.

    pour que l'utilisateur puisse répondre au script, et que le script prenne en compte les réponses, il faut que l'utilisateur ait accès à un terminal.
    si un utilisateur se connecte en ssh en ayant accès à un terminal (pas juste en lançant une commande par ssh, genre : ssh user@serveur 'ls ~'), une variable d'environnement est créée qui prend comme valeur le nom du terminal qui lui a été attribué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ssh user@serveur
    # bla bla motd : bienvenue sur serveur
    $ echo $SSH_TTY
    /dev/pts/0
    $ ^D déconnexion
    /etc/profile est lu lors de toute connexion, donc
    à la fin de ce fichier, tu ajoutes un test.
    si l'utilisateur à accès à un terminal, alors exécution de ton script, finsi

    /etc/ssh/sshrc peut être supprimé, il ne sert à rien dans ton cas.

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 7
    Points
    7
    Par défaut Merci beaucoup
    Merci ça marche bien.

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

Discussions similaires

  1. Lancer un script PHP à partir d'une connexion FTP
    Par fveto dans le forum Composants VCL
    Réponses: 1
    Dernier message: 09/06/2015, 21h13
  2. Lancer un Programme derriere une connexion ssh
    Par wodel dans le forum Administration système
    Réponses: 3
    Dernier message: 21/02/2008, 17h59
  3. [MySQL] temps d'ouverture d'une connexion VS temps d'exécution d'une requête
    Par epoz dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 25/04/2007, 19h06
  4. Réponses: 4
    Dernier message: 28/02/2007, 16h24
  5. Ouverture d'une connexion RDP en mode "console" ?
    Par elitost dans le forum Windows XP
    Réponses: 2
    Dernier message: 31/08/2006, 11h37

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