Connexion ssh en script bash

Résolu
aalex57 Messages postés 93 Statut Membre -  
aalex57 Messages postés 93 Statut Membre -
Bonjour,

J'aurais besoin de votre aide avec l'utilisation d'un script bash.
Je m'explique :

Je voudrais me connecter en ssh dans un script bash, mais je sèche pour insérer le mot de passe automatiquement.

Je fais par exemple :
ssh admin@192.168.1.1 mdp
mes commandes etc...

Mais le mot de passe n'est pas pris en compte, à chaque fois je dois le réécrire et bien évidement, aucune de mes commandes ne sont prises en compte.

Je ne peux pas utiliser le système de clé privée dans mon cas.

J'espère que vous pourrez m'aider.

Merci.

4 réponses

Résumé de la discussion

L'utilisation d'un script Bash pour se connecter en SSH avec mot de passe, sans recourir à une clé privée, nécessite une solution d'automatisation fiable et robuste pour les scripts métiers. Des solutions reposent sur l'outil expect qui gère les prompts 'User Name:' et 'Password:' en envoyant les valeurs et en lançant ensuite les commandes, par exemple 'copy running-config ...'. En pratique, le script example montre un spawn, des send et des expect success, puis un exit, ce qui permet d'exécuter des commandes après l'authentification et d'obtenir une session automatisée. D'autres solutions évoquent plink ou des scripts interactifs, mais une approche fiable reste l'utilisation d'un script expect avec des attentes alignées sur les prompts et des enchaînements 'send'.

Bobot (l'IA à votre service)
  1. aalex57 Messages postés 93 Statut Membre 25
     
    Merci à tous pour vos commentaires, mais je rencontre énormément de problème.

    En fait je voudrais me connecter sur mes switchs en ssh et faire un copy running config mais j'avoue que même avec vos explications j'ai beaucoup de mal :/
    2
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Un exemple avec "plink".

      Je me connecte à ma station "192.168.10.18", sur le port "22222", avec le login "jp", le mot de passe "xxxxx" et j'exécute la commande "hostname"

      $ plink 192.168.10.18 -P 22222 -l jp -pw xxxxx hostname
      MDKx86_64
      
      $
      0
    2. aalex57 Messages postés 93 Statut Membre 25
       
      Voici ma commande dans mon fichier bash :

      #!/bin/bash
      plink 192.168.1.254 -P 22 -l admin -pw MDP hostname


      J'ai auparvant installé le paquet plink avec apt-get install plink.

      et lorsque je lance le script, le terminal me retourne :

      ./backup_test.sh: ligne 3: plink : commande introuvable


      Je ne comprend pas :/
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Est-ce que depuis ton terminal la connexion au switch se fait bien avec plink ?
      0
    4. aalex57 Messages postés 93 Statut Membre 25
       
      Euh non, je m'y connecte via ssh :/
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Depuis ton terminal, tape :

      plink 192.168.1.254 -P 22 -l admin -pw MDP hostname

      Et dis-nous ce qu'il en est ;-\
      0
  2. _Tawal_ Messages postés 672 Statut Membre 73
     
    Tu peux essayer l'option -a

    ssh -a admin@192.168.1.1
    0
  3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    La solution passe par Expect :

    http://www.oreilly.com/catalog/expect/chapter/ch03.html
    http://www.cotse.com/dlf/man/expect/index.htm

    Un exemple ici.

    Ou avec "plink" qui fait partie des "putty-tools".

    La seconde solution est la plus simple, vu que le login et password sont fournis sur la ligne de commande ;-))
    0