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

Bibliothèques et frameworks PHP Discussion :

[SSH] Connexion sur un routeur


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Par défaut [SSH] Connexion sur un routeur
    Hello,

    Je tente de me connecter en ssh sur un routeur Cisco depuis une page php.
    Voici le code :

    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
     
    $con=ssh2_connect('192.168.100.2', 22);
    ssh2_auth_password($con, "test", "test"); 
     
    $shell=ssh2_shell($con, 'xterm');
    $stderr_stream = ssh2_fetch_stream($shell, SSH2_STREAM_STDERR);
     
    fwrite( $shell, "configure terminal \n");
    fwrite( $shell, "voicemail 999\n");
    fwrite( $shell, "exit \n");
    fwrite( $shell, "exit \n");
     
    echo "Le stream des erreurs : ".$stderr_stream;
     
    fclose($shell);
    Je vois que la commande "configure terminal" est envoyée au routeur, car il m'affiche une ligne dans sa console, mais les autres commandes ne semblent pas avoir d'impact sur la configuration.
    Quand je me connecte en ssh depuis linux, aucun problème, les modifications de config sont prises en compte, mais en php non.

    Je ne sais pas trop comment debuger, quelqu'un aurait une idée ?

    Un grand merci !

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Par défaut
    Bon voici des méthodes de connection et d'authentification un peu plus propres, mais cela ne fonctionne toujours pas :

    > Connection ok
    > Auth ok

    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
    39
     
    <?php
    /* Notification à l'utilisateur si le serveur termine la connexion */
    function my_ssh_disconnect($reason, $message, $language) {
      printf("Le serveur s'est déconnecté avec le code [%d] et le message : %s\n",
             $reason, $message);
    }
     
    $methods = array(
      'kex' => 'diffie-hellman-group1-sha1',
      'client_to_server' => array(
        'crypt' => '3des-cbc',
        'comp' => 'none'),
      'server_to_client' => array(
        'crypt' => 'aes256-cbc,aes192-cbc,aes128-cbc',
        'comp' => 'none'));
     
    $callbacks = array('disconnect' => 'my_ssh_disconnect');
     
    $connection = ssh2_connect('192.168.100.2',22, $methods, $callbacks);
    if (!$connection) die('Echec de la connexion');
     
    if (ssh2_auth_password($connection, 'ciscoSDM', 'ciscoSDM')) {
      echo "Identification réussi !\n";
    } else {
      die('Echec de l\'identification...');
    }
     
    $shell=ssh2_shell($connection, 'xterm');
     
    $stderr_stream = ssh2_fetch_stream($shell, SSH2_STREAM_STDERR);
     
    fwrite( $shell, "configure terminal \n");
    fwrite( $shell, "telephony-service \n");
    fwrite( $shell, "voicemail 777 \n");
    fwrite( $shell, "exit \n");
    fwrite( $shell, "exit \n");
     
    fclose($shell);
    je sèche grave, personne n'a une idée ?

  3. #3
    Membre éclairé Avatar de pioule
    Profil pro
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Par défaut
    Bin tu utilises des fonctions relatives au système de fichiers pour envoyer des commandes à travers une connection SSH ?

    A mon avis, tu devrais essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ssh2_exec( $shell, "configure terminal");
    ssh2_exec( $shell, "telephony-service");
    ssh2_exec( $shell, "voicemail 777");
    ssh2_exec( $shell, "exit");
    ssh2_exec( $shell, "exit");
    PS : jamais fait de SSH, donc mon aide se limitera à des suggestions

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Par défaut Re
    Salut,

    merci de ta réponse, malheureusement, j'avais déjà testé. Le problème est que la fontion ssh2_exec() permet d'envoyer une commande isolée au moyen de ssh alors que mes commandes on besoin de se suivre à la manière shell. La première permet d'entrer dans le menu de configuration, la deuxième de rentrer dans les services de téléphonie, puis on set le numéro de la voicemail, puis on quitte les deux menus. Donc pas possible, c'est pour cela que la version d'écriture dan le flux me semblait plus apropriée.

    Citation Envoyé par pioule
    A mon avis, tu devrais essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ssh2_exec( $shell, "configure terminal");
    ssh2_exec( $shell, "telephony-service");
    ssh2_exec( $shell, "voicemail 777");
    ssh2_exec( $shell, "exit");
    ssh2_exec( $shell, "exit");
    Le truc qui ne m'aide surtout pas, c'est que je ne peut rien voir des commandes envoyées. Quelqu'un peut-il me dépanner ?

  5. #5
    Membre éclairé Avatar de pioule
    Profil pro
    Inscrit en
    Août 2003
    Messages
    66
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2003
    Messages : 66
    Par défaut
    Et en séparant toutes tes commandes par des ; ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh2_exec( $shell, "configure terminal;telephony-service;voicemail 777;exit;exit");

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Par défaut
    Salut,

    Non impossible, cela ne changer pas le problème. Il ne tient compte que de la première commande.

    Help !!!

  7. #7
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 67
    Par défaut Enfin !!!!
    Voici la soluce !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    fwrite( $shell, "configure terminal \n");
    sleep(1);
    fwrite( $shell, "telephony-service \n");
    sleep(1);
    fwrite( $shell, "voicemail 777 \n");
    sleep(1);
    fwrite( $shell, "exit \n");
    sleep(1);
    fwrite( $shell, "exit \n");
    sleep(1);
    fclose($shell);

    C.f.: http://ch2.php.net/manual/fr/function.ssh2-shell.php

    Merci bien

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/06/2015, 11h12
  2. [SSH2] Connexion sur un routeur avec clé publique
    Par houssem91 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 27/05/2014, 01h58
  3. connexion d'un routeur WIFI sur freebox
    Par JULUCIELU dans le forum Hardware
    Réponses: 3
    Dernier message: 30/10/2007, 10h37
  4. connexion SSH appuye sur un annuaire LDAP
    Par Toeic dans le forum Réseau
    Réponses: 3
    Dernier message: 31/07/2007, 12h01
  5. Connexion sur une machine derriere un routeur
    Par nixonne dans le forum Général Java
    Réponses: 9
    Dernier message: 20/07/2006, 20h38

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