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

Sécurité Discussion :

SSH script avec username et mot de passe


Sujet :

Sécurité

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut SSH script avec username et mot de passe
    Bonjour,

    Je voudrais à l'aide d'un SSH script me connecter sur un autre pc qui tourne avec linux.
    Avec le script suivant, j'ai la connexion mais il me demande un mot de pass, ce que je ne voudrais pas.


    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
    set username "alberto123"
    set password "abc12345"
    set hostname "172.16.31.9"
     
    ssh $username@$hostname 
     
    expect {
      "Are you sure you want to continue connecting (yes/no)? " {
        send -- "yes\r"
        expect "*?assword:*" {
          send -- "$password\r"
          send -- "\r"
        }
      }
      "*?assword:*" {
        send -- "$password\r"
        send -- "\r"
      }
    }
     
    expect eof
    Merci de votre aide

  2. #2
    Rédacteur
    Avatar de CedrX
    Inscrit en
    Avril 2007
    Messages
    1 111
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 111
    Par défaut
    Pour éviter que le serveur ssh te demandes un mot de passe il faut générer une paire de clefs privées/publiques sur le client
    Et ensuite il faut copier la clef publique sur le serveur ssh.
    Exemple: Tu veux te connecter sur le serveur serveur1 en tant qu'utilisateur toto:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    #Pour copier la clef publique sur le serveur dans le répertoire de l'utilisateur toto
    ssh-copy-id toto@serveur1
     
    #Pour se connecter
    ssh -l toto serveur1

  3. #3
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Bonjour,

    Justement, je suis en train de rédiger un article sur OpenSSH. Si tu avais posé ta question 1 ou 2 semaines plus tard, ca aurait été mieux mais bon.

    Je te laisse jeter un coup d'oeil à ce que j'ai déjà rédigé. Tu y trouveras peut-etre ton boheur !

    Le lien

    N'hésite pas si tu as des questions.
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  4. #4
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci pour vos réponses,

    J'ai lu l'article qui est tres enrichissant.

    Apres l'éxecution du sur le server
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh-copy-id kees122@xxx.xxx.xxx.xxx
    j'ai le message d'erreur suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /usr/bin/ssh-copy-id: ERROR: No identities found
    Merci de m'aider,

  5. #5
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    La commande que tu as entrée pour copier la clé sur le serveur n'est pas correct. Il ne faut pas oublier de préciser la clé publique à copier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh-copy-id -i chemin/clé/publique/id_rsa.pub login@serveur_ssh
    Il faut changer id_rsa.pub en id_dsa.pub si tu as généré des clés avec l'algo DSA.

    Une autre solution pour copier la clé est un scp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    scp chemin/clé/publique/id_rsa.pub login@serveur_ssh:~/.ssh/
    puis
    ssh login@serveur_ssh cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  6. #6
    Rédacteur
    Avatar de CedrX
    Inscrit en
    Avril 2007
    Messages
    1 111
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 1 111
    Par défaut
    Apres l'éxecution du sur le server
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ssh-copy-id kees122@xxx.xxx.xxx.xxx
    /usr/bin/ssh-copy-id: ERROR: No identities found
    En fait cette commande doit être exécutée sur le client après avoir généré la paire clef privée/publique (toujours sur le client)

  7. #7
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    merci à vous tous ca fonctionne, grâce à vous.

    l'etappe suivante de mon probleme est d'ouvrir le lecteur CD Rom, un Robot va placer
    un cd avec des informations qui doit être copiées vers le client.

    Dans un script j'ai mis:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ssh bert@xxx.xxx.xxx.xxx
    eject /dev/cdrom
    mount /dev/cdrom
    la connection s'effectue sans probleme, et il ne demande plus le mot de passe comme prevue.
    Mais là le lecteur CD-rom ne s'ouvre pas. Par contre çc marche si je fais manuellement avec les commandes:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    eject /dev/cdrom
    mount /dev/cdrom
    Merci pour votre aide,

  8. #8
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Ton utilisateur "en local" et celui avec qui tu te connectes par ssh est le même ?
    Sinon, peut-être faut-il regarder au niveau des droits d'utilisation de "eject" et "mount", rajouter cet utilisateur dans le bon groupe pour avoir les droits ???
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  9. #9
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci pour la reponse

    Mon utilisateur "en local" et celui avec lequel je connecte par ssh est le même.
    Cet ulisateur local bert, il a tous les droits. Car si j'execute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    eject /dev/cdrom
    mount /dev/cdrom
    sur ce server, ça fonctionne. Mais avec le script depuis mon client , ça ne fonctionne pas.

    Mertci

  10. #10
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Le problème doit venir de ton script dans ce cas.
    L'exécution du script doit "planter" avant d'arriver à ces lignes.

    Pour voir jusqu'où le script s'exécute, tu peux le lancer en mode verbose :
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  11. #11
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    Merci lavazavio pour tes reponses,

    mon script ne contient que trois lignes:

    ssh bert@xxx.xxx.xxx.xxx
    eject /dev/cdrom
    mount /dev/cdrom

    La connexion (execution de la première ligne) a eu bien lieu sur le server mais le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    eject /dev/cdrom
    mount /dev/cdrom
    s'execute sur le client.

    Comment forcer l'execution sur le server.

    Merci d'avance,

  12. #12
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    Ah d'accord !
    C'est normal dans ce cas !!!
    Ton script est sur ton client. Tu exécutes ton script :
    1. La premiere ligne s'exécute sur le client et va établir une connexion ssh avec le serveur.
    2. La 2eme s'exécute sur le client et ouvre le lecteur cd.
    3. La 3eme s'exécute sur le client et ferme le lecteur cd.

    Pour exécuter des commandes via ssh, 2 solutions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh login@serveur 'eject /dev/cdrom; mount /dev/cdrom;'
    Tu places tes commandes shell entre simples quotes, séparées par un point virgule ou meme && qui ne fait s'exécuter la 2eme commande que si la 1ere s'est exécutée correctement (code retour = 0).

    Autre solution, tu écris un script shell dans lequel tu places toutes tes commandes et tu le fais s'exécuter par ssh :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh login@serveur /chemin/du/script.sh
    avec comme script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    #!/bin/sh
     
    eject /dev/cdrom
    mount /dev/cdrom
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

  13. #13
    Membre éclairé
    Inscrit en
    Janvier 2004
    Messages
    309
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 309
    Par défaut
    merci vraiment pour les reponses, excusez moi de vous deranger autant.

    J'ai opté pour la solution suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ssh bert@192.168.1.2 'eject /dev/cdrom; mount /dev/dcrom;'
    au fait l'ouverture du lecteur fonctionne bien mais pour la fermeture j'ai un message d'erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mount: can't find /dev/dcrom in /etc/fstab or /etc/mtab
    Evidemment je n'ai pas monté le cdrom dans le fichier /etc/fstab.
    En ligne de commande avec un terminal sur le server, la commande
    fonctionne bien mais je ne pas travail sur un terminal sur le server. Je voudrais faire dans
    la script.

    Merci d'avance,

  14. #14
    Rédacteur
    Avatar de lavazavio
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 673
    Par défaut
    C'est normal si tu tapes /dev/dcrom au lieu de /dev/cdrom !

    Peut-etre que tu tapes ca parce que c'est ce que je te proposais dans mon post... C'était juste une faute de frappe, voyons !
    Rédacteur et Modérateur rubriques Linux et Virtualisation
    Mes Articles
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux
    N'oubliez pas de consulter les FAQ virtualisation et les cours et tutoriels Virtualisation
    Man pages en français

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

Discussions similaires

  1. [conseil] script de génération de mots de passe
    Par spilliaert dans le forum Langage
    Réponses: 11
    Dernier message: 07/02/2006, 20h10
  2. [FAQ] Exécuter application avec autre login/mot de passe
    Par Lung dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 16/01/2006, 14h14
  3. Réponses: 3
    Dernier message: 25/11/2005, 13h06
  4. Fenêtre avec login et mot de passe
    Par keawee dans le forum ASP
    Réponses: 5
    Dernier message: 29/08/2005, 14h30
  5. Probleme avec changement du mot de passe utilisateur
    Par Davenico dans le forum Outils
    Réponses: 2
    Dernier message: 19/12/2003, 14h42

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