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

Langage Perl Discussion :

automatisation de la connexion par ssh


Sujet :

Langage Perl

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 17
    Points : 15
    Points
    15
    Par défaut automatisation de la connexion par ssh
    Bonjour à tous !

    je souhaite me connecter à des machines par ssh avec clé rsa de façon automatique, à partir d'un fichier contenant des @IP.
    jusque là pas de problème. sauf que sur certaine machine, celles où je ne me suis jamais connecté, j'ai un message

    The authenticity of host '***.***.***.***' can't be established.
    ECDSA key fingerprint is **************************.
    Are you sure you want to continue connecting (yes/no)"
    Comment puis je répondre automatiquement à cette question?
    J'ai essayé de récupérer cet avertissement dans une variable pour la tester et y répondre mais en vain...

    merci d'avance

    Ps: je ne peux pas utiliser de module car toutes les machines ne sont pas au même niveau ( debian 6 , 7, 8, 9 rhel7 centos6 etc ...) et je n'ai pas la main sur les mises à niveau des paquets perl de ces machines

  2. #2
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    J'ai eu occasionnellement ce problème. Normalement, en répondant une première fois manuellement, le problème ne se pose plus ensuite.

    Sinon, il y a éventuellement le module expect.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    merci de ta réponse lolo,

    j'ai deux problèmes;

    J'ai quelques 600 machines où je dois me connecter une première fois ( ça fait beaucoup et c'est pour ça que je cherche à automatiser la connexion).
    Je ne peux pas installer de module sur la machine d'exploitation ( réseau local uniquement , pas de source hors périmètre de sécurité).

  4. #4
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    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 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Bonjour,

    L'option que tu cherches est celle-ci il me semble:
    StrictHostKeyChecking
    Si cette option a pour argument « yes », ssh ne demande pas d’ajouter les clefs de machine au fichier $HOME/.ssh/known_hosts, et refuse la connexion aux machines dont la clef de machine a changé.
    Ceci fournit une protection maximale contre les attaques de type « Cheval de Troie », néanmoins peut être gênant si le fichier /etc/ssh/ssh_known_hosts n’est pas très bien maintenu, ou si on se con-
    necte fréquemment à de nouvelles machines. Cette option impose à l’utilisateur d’ajouter manuellement toutes les nouvelles machines. Si cette option a pour argument « no », ssh ajoute automatique-
    ment les nouvelles clefs de machine aux fichiers des machines connues. Si cette option a pour argument « ask », ssh ajoute les nouvelles clefs de machine aux fichiers des machines connues si l’util-
    isateur confirme que c’est ce qu’il veut faire, et refuse de se connecter aux machines dont la clef a changé. Les clefs des machines connues sont vérifiées dans tous les cas. L’argument pour ce mot-
    clef est « yes », « no » ou « ask ». Par défaut « ask ».
    Après, sous perl, je ne sais pas comment on positionne les options ssh.
    Cordialement.

  5. #5
    Rédacteur/Modérateur

    Avatar de Lolo78
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2012
    Messages
    3 612
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2012
    Messages : 3 612
    Points : 12 469
    Points
    12 469
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par losc_vador Voir le message
    Je ne peux pas installer de module sur la machine d'exploitation ( réseau local uniquement , pas de source hors périmètre de sécurité).
    Si le binaire expect est installé sur ta bécane (et il y a toutes les chances qu'il le soit si tu es sous Linux), tu peux éventuellement le piloter manuellement depuis un script Perl (ou éventuellement bash ou ksh). Cela ne nécessite que quelques lignes de code (mais je reconnais pour avoir dû le faire que c'est souvent assez casse-pied à faire marcher correctement et à tester).

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Bonjour,

    L'option que tu cherches est celle-ci il me semble:

    Après, sous perl, je ne sais pas comment on positionne les options ssh.
    Merci disedorgue, c'est en effet ce que je recherchais.

    en raison de mes restrictions d'emploi, j'utilise

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my $result = `ssh  -o StrictHostKeyChecking=no -i ~/.ssh/id_rsa_user user\@IP `;
    par contre je suis obligé de passer une commande derrière pour pouvoir tester la variable $result.
    du coup je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    my $result = `ssh  -o StrictHostKeyChecking=no ~/.ssh/id_rsa_user user\@$adIp "hostname"`;
    chomp $result;
    if ($result){
    	say "connection à $result; $adIp réussie "
    }
    Si je ne met pas de commande ( "hostname" ) en fin de commande , ça bloque

  7. #7
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 273
    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 273
    Points : 12 708
    Points
    12 708
    Par défaut
    Je n'avais pas trop compris ton besoin, pour moi, tu voulais te connecter via perl en ssh pour ensuite faire certaines actions.

    Alors que là, tu ne fais qu'une connexion pour ne rien faire.

    Car en fait, si tu ne mets pas de commande finale, lors de ta connection ssh, celui-ci ne se bloque pas, il attend juste des instructions, car derrière il a ouvert le shell spécifique de ton utilisateur.
    Tu ne le vois juste pas car perl wrappe la sortie.

    Si tu ne veux que juste faire un scan de tes machines (et en même temps récupérer le fingerprint ), regarde du coté de la commande ssh-keyscan qui est fait spécifiquement pour ça.

    La syntaxe typique en shell est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ssh-keyscan hostname_de_la_machine_distante >>~/.ssh/known_hosts
    Par contre, attention à ne pas pourrir ton fichier known_hosts en mettant plusieurs fois le fingerprint de la machine distante dedans.
    Cordialement.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Juillet 2018
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2018
    Messages : 17
    Points : 15
    Points
    15
    Par défaut
    Merci à vous deux pour l'aide que vous m'avez apporté.

    j'ai réussi a avoir ce que je voulais non pas en utilisant ssh-keyscan mais grâce aux précisions sur la connexion SSH que vous m'avez indiqués.

    je vais donc mettre le sujet en résolu , encore merci

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

Discussions similaires

  1. Connexion par clef SSH
    Par Sephiroth Lune dans le forum Administration système
    Réponses: 0
    Dernier message: 16/11/2014, 11h28
  2. Automatiser connexions à distance ( SSH, PPTP, Webex, RDP ..)
    Par vivicente dans le forum Développement
    Réponses: 0
    Dernier message: 19/05/2009, 14h20
  3. script de connexion par ssh
    Par black_code dans le forum Modules
    Réponses: 2
    Dernier message: 25/07/2005, 15h10
  4. Connexion par les DOA
    Par olivierlsf dans le forum Bases de données
    Réponses: 2
    Dernier message: 06/05/2004, 18h33
  5. [PostgreSQL]probleme de connexion par pgaccess
    Par yacomor dans le forum Administration
    Réponses: 9
    Dernier message: 14/11/2002, 16h15

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