SFTP et saisie de mot de passe

IBM i, configuration, commandes, ...
Répondre
florian67
Messages : 129
Enregistré le : lun. 23 déc. 2013, 17:03:12

Message par florian67 »

Bonjour à tous,

J'ai besoin de faire un envoi SFTP sans échange de clé, juste avec le mot de passe. La gestion de la sécurité FTP/SFTP d'en face se base sur une Active Directory Windows.

Pour l'instant je n'arrive pas à m'y connecter, ça commence déjà mal :)

Est-ce que quelqu'un à déjà fait ce genre de transfert ?

J'ai essayer plusieurs commandes mais rien n'y fait. Exemple :

Code : Tout sélectionner

sftp -o PreferredAuthentications=password -o PubkeyAuthentication=no user@serveur
Merci d'avance pour votre aide.
Florian

claude.mahe
Messages : 44
Enregistré le : ven. 22 juin 2007, 17:11:26
Localisation : SAINT BRIEUC( 22002)
Contact :

(sujet inconnu)

Message par claude.mahe »

Bonjour,

J'ai rencontré le même problème...

A priori, il n’est pas possible nativement de passer le mot de passe dans un script de connexion. L’idée est donc d’utiliser, sous PASE, l’outil Opensource « expect » qui est capable de simuler en batch des saisies interactives. Pour plus d’informations, on pourra se référer à la page du site de Scott Klement consacré à OpenSSH sur IBM i (cf https://www.scottklement.com/openssh/) ainsi que le site d’ « expect » lui-même (cf http://expect.sourceforge.net/)

Installation du logiciel « expect » sur l’AS400 :
- Téléchargement des binaires sur le site https://www.scottklement.com/expect/
- Une fois téléchargé sur l’AS400 (par exemple dans /tmp) lancer les commandes suivantes :

Code : Tout sélectionner

CALL QP2TERM
$ cd /tmp
$ uncompress tcl.8.4.9.tar.Z
$ uncompress expect.5.43.tar.Z
$ cd /
$ tar xf /tmp/tcl.8.4.9.tar
$ tar xf /tmp/expect.5.43.tar
$ ln -s /qopensys/usr/bin/stty /usr/local/bin/stty
Press F3 to exit PASE.
Ensuite çà n'est pas encore terminé ! Il faut en effet formater le script qui va être exécuté...
Extrait du CL : (nota : la variable &NULL contient la valeur hexa x'00')

Code : Tout sélectionner

 CHGVAR &CHEVRON '> '   
  CHGVAR &CMD2  ('expect \"password:\"')                             
  CHGVAR &CMDSH ('echo "' *TCAT &CMD2 *TCAT '"' +                    
                           *BCAT &CHEVRON *BCAT &FICCMD *TCAT &NULL) 
  CALL QP2SHELL (&SHELL &CMDSH)                                      
  CHGVAR &CMD2  ('send "' *TCAT &PASSWD *TCAT '\\n"')                
Exemple de script :

Code : Tout sélectionner

 ************Beginning of data**************                                                                                        
#!/usr/local/bin/expect -f                                                                                                          
log_file -noappend /tmp/monserveur.log                                                                           
spawn sftp -o UserKnownHostsFile=/dev/null -o PubkeyAuthentication=no -o StrictHostKeyChecking=no user@monserveur
expect "password:"                                                                                                                  
send "azerty\n"                                                                                                                     
expect "sftp>"                                                                                                                      
send "put monfichier.txt\n"                                                                              
expect "sftp>"                                                                                                                      
send "quit\n"                                                                                                                       
exit 0                                                                                                                              
 ************End of Data********************   

florian67
Messages : 129
Enregistré le : lun. 23 déc. 2013, 17:03:12

(sujet inconnu)

Message par florian67 »

Merci beaucoup pour ce post Claude.

Je n'imaginais pas que ça soit si compliqué…

Du coup je sais à quoi je vais occuper ma journée:)

J'imagine qu'une fois installé on peut lancer les commandes manuellement dans QP2TERM pour essayer avant de valider le script ?

cmasse
Site Admin
Messages : 764
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

expect

Message par cmasse »

Absolument, j'ai rencontré le même problème.

A priori c'est le type de terminal qui n'est pas reconnu. l’utilisation de cet utilitaire est le seul moyen...
Christian Massé (Volubis.fr)

claude.mahe
Messages : 44
Enregistré le : ven. 22 juin 2007, 17:11:26
Localisation : SAINT BRIEUC( 22002)
Contact :

Re: (sujet inconnu)

Message par claude.mahe »

florian67 a écrit :Merci beaucoup pour ce post Claude.

J'imagine qu'une fois installé on peut lancer les commandes manuellement dans QP2TERM pour essayer avant de valider le script ?
Oui bien sûr

florian67
Messages : 129
Enregistré le : lun. 23 déc. 2013, 17:03:12

(sans sujet)

Message par florian67 »

Bonjour à tous,

Le petit utilitaire est installé.

Par contre je me demande si c'est vraiment possible de lancer la commande spawn dans QP2TERM.

Quand je test "spawn sftp ...." il me met : /QOpenSys/usr/bin/-sh: spawn: introuvable.

Et ce qui est bien c'est que le site de scott klement est en maintenance sur ce sujet :)

Florian

Répondre