Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2974 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] Script de création de clés SSH automatique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash] Script de création de clés SSH automatique

n°1119043
johnson950
Posté le 05-03-2009 à 17:17:41  profilanswer
 

Bonjour,
 
J'essaye de développer un petit script pour créer une paire de clé SSH.
 
Tous d'abord en ligne de commande, ce la nous donne :
 
ssh_keygen -t dsa -b 1024 -C username@domain.ltd
 
on a ensuite la ligne Generating public/private... qui apparait pendant 5 secondes, puis :
 
Enter file in which to save the key : "appuie sur la touche entrée"
Enter passphrase : "appuie sur la touche entrée"
Enter same passphrase again : "appuie sur la touche entrée"
 
Maintenant j'essaye de passer sous un script BASH, cependant je bloque sur l'appui consécutif de la touche entrée trois fois de suite.
 
J'ai essayé echo -e "\n\n\n" | ssh_keygen -t dsa -b 1024 -C user...
 
Mais ça ne fonctionne pas ...
 
Avez vous une solution ?
Merci de votre aide !

mood
Publicité
Posté le 05-03-2009 à 17:17:41  profilanswer
 

n°1119059
ph75
Posté le 05-03-2009 à 18:15:47  profilanswer
 

Pour automatiser des commandes qui nécessitent des saisies manuelles, tu peux utiliser expect, outil dont le prérequis est tcl, sinon il existe des modules expect pour perl. Essaye une recherche avec tout ces mots clés.

n°1119106
sputnick
bip...bip...bip...bip...bi...b
Posté le 05-03-2009 à 21:32:20  profilanswer
 

Est-ce que ceci ne ferais pas l'affaire ?

Code :
  1. ssh-keygen -q -t rsa1 -f id_rsa  -C '' -N '' >&/dev/null
  2. ls  -l id*


Message édité par sputnick le 06-03-2009 à 19:14:37
n°1119178
johnson950
Posté le 06-03-2009 à 09:41:07  profilanswer
 

La solution de Sputnick a l'air plus simple vu que je veux uniquement faire des appui successif sur la "touche entrée".
 
Cependant, il y a certaine chose que je ne comprend pas !
>/dev/null/ signifie uniquement que les données de sorties sont envoyées sur ce fichier ?
Par contre je ne comprend pas du tout la seconde ligne :
ls -l .id* : ou faut t'il se placer pour que la commande fonctionne et quelle est son intérêt ?
 
Merci encore de votre aide !

n°1119209
o'gure
Modérateur
Multi grognon de B_L
Posté le 06-03-2009 à 10:23:50  profilanswer
 

johnson950 a écrit :

La solution de Sputnick a l'air plus simple vu que je veux uniquement faire des appui successif sur la "touche entrée".

 

Cependant, il y a certaine chose que je ne comprend pas !
>/dev/null/ signifie uniquement que les données de sorties sont envoyées sur ce fichier ?

Oui mais il ne s'agit que de message à caractère informatif.

johnson950 a écrit :


Par contre je ne comprend pas du tout la seconde ligne :
ls -l .id* : ou faut t'il se placer pour que la commande fonctionne et quelle est son intérêt ?


Là il te faut revoir les commandes de bases sous Unix.
ls est la commande permettant de lister les fichiers et répertoires. L'option -l permet de consulter les droits/privilèges, et les dates de modifications. Et .id* c'est une bête expression régulière.
J'ai dû mal à voir l'utilité de cette commande également puisque ta clé privé sera stockée dans le fichier id_rsa et la clé publique dans id_rsa.pub. Le '.' devant est une erreur.


Message édité par o'gure le 06-03-2009 à 10:25:37

---------------
Relax. Take a deep breath !
n°1119266
johnson950
Posté le 06-03-2009 à 11:45:53  profilanswer
 

Merci pour cette information!
 
Cependant, j'essaye pour ma part d'utiliser une clé dsa : j'utilise donc la ligne de commande suivante:
 
ssh-keygen -q -t dsa -f id_dsa  -C 'nom du serveur' -N ''
 
Ca fonctionne, cependant lorsque j'essaye ensuite de copier la clé sur le serveur à l'aide de la fonction ssh-copy-id :
J'ai la ligne suivante qui apparait :
 
The authenticity of host 'nom du serveur' can be established.
RSA key fingerprint is ....................................................
Are you sure you want to continue connecting (yes/no) ?
(Pourquoi me parle t'il de clé RSA ?)
 
Alors que lorsque je fais une clé DSA avec la ligne de commande suivante :
 
ssh-keygen -q -t dsa -C 'nom du serveur'
 
lorsque j'utilise la fonction ssh-id-copy je dois directement inséré le mot de passe ce qui m'arrange pour le prochain script que j'utilise !
 
Avez vous une idée ?
Merci de votre aide

n°1119407
sputnick
bip...bip...bip...bip...bi...b
Posté le 06-03-2009 à 19:16:55  profilanswer
 

Oui effectivement comme disent les Anglais, "typo". Le point était une erreur de saisie.
Par contre id* n'est pas une expression régulière, c'est un simple glob.
CF http://mywiki.wooledge.org/glob


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Bash] Script de création de clés SSH automatique

 

Sujets relatifs
[shell script] Compter des repertoires[Shell script] Comment convertir une ligne en tableau
[Debian] Ouverture de ports pour accès SSH et FTP[Résolu] SSH et longueur de ligne
bash : extraction de caractèresScript bash : récuperer des données dans un fichier
erreur dans un script perlSSH en panne
Script pour compresser des fichiers (texte) tous les jours? 
Plus de sujets relatifs à : [Bash] Script de création de clés SSH automatique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR