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********************