Page 1 sur 1

Posté : mar. 08 janv. 2019, 11:33:53
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

(sujet inconnu)

Posté : mar. 08 janv. 2019, 11:49:36
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********************   

(sujet inconnu)

Posté : mar. 08 janv. 2019, 12:00:30
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 ?

expect

Posté : mar. 08 janv. 2019, 12:21:13
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...

Re: (sujet inconnu)

Posté : mar. 08 janv. 2019, 13:45:22
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

(sans sujet)

Posté : mer. 09 janv. 2019, 15:25:11
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