[Mandrake] commande scp dans un script!!! [Fermé]

Signaler
-
 jpbauer -
bonjour à tous,

mon souci est que j'aimerai copier un fichier d'un serveur A vers un serveur B.
La commande scp me semble pas mal mais le souci est que je dois mettre cette commande dans un script pour enfin le mettre en cron.

Le problème comme vous le savez, c'est que scp utilisant ssh, un mot de passe met demander.

Connaissez vous un moyen simple (sans utiliser les clé public ou privé de ssh) pour que le script puisse lire un fichier texte dans lequel j'aurais mis le mot de passe???

La tache cron s'effectuant à 00h00 et 12h00, comprenez que je n'ai aucune envie de rester au bureau jusqu'a minuit!! lol

ps: voici un debut de script que je voulais faire:
-------------------------------------------------------------
#!/bin/bash

mdp=$(cat mdp) //fichier mdp avec le mot de passe admin
echo $mdp

#scp -rB sauveark admlinux@172.21.56.2:/ < $mdp //je m'en doutais que ça n'allait pas fonctionner...

merci d'avance
benoit

5 réponses

Pour recup des fichiers, voilà mon script, bon c'est du ftp donc ca passe en claire :) :

#!/bin/bash
USER=admlinux
PASSWORD=tonpasseword
CHEMIN=chemindesfichiersadl

ftp -niv 172.21.56.2 <<FINDETEXTE
user $USER $PASSWORD
cd $CHEMIN
mget sauveark
quit
Merci c'est super sympa de m'aider!!
Seul bémol: je n'ai aucun service ftp qui tourne et c'est pour cette raison qu'il me faut scp!!!

j'avais oublé de préciser!!
mille excuses

benoit
Si cette méthode est suffisante je te propose :

>ssh-keygen -t rsa //depuis ta machine qui lance le script, pour la passphrase fait entrée (laisse vide)

ensuite tu copies la clé générée sur la machine distante

>scp ~root/.ssh/id_rsa.pub root@machinedistante:~root/.ssh/authorized_keys

Essaye un scp maintenant voir si il te demande un pwd (normalement plus de pwd demander)
merci de ton aide:

j'ai fait le ssh-keygen -t rsa, j'ai rien rentré pour la passphrase, j'ai copier dan /root/.ssh/known_hosts de ma machine distante car je n'ai pas de authorized_keys

et lorsque je refais le teste, ça ne marche toujours pâs!!!
> benoit
Créé le fichier authorized_keys :))
ok, tous fonctionne, il ma fallut modifier quelques trucs mais c'est bon!!!

merci pour ton aide précieuse...

cordialement
Bonjour Benj et Benoit,

J'ai le même problème que Benoit: je veux mettre la commande SCP dans un script sur un serveur AIX pour transférer des fichiers depuis plusieurs serveurs (AIX aussi) vers ce serveur.

Pour cela j'ai :
-crée le fichier "authorized_keys" sur tous mes serveurs cibles.
-Taper le "ssh-keygen -t rsa" dans le serveur où sera exécuté le script.
-Copier "id-rsa.pub" sur tous les serveurs cibles.

mais en testant avec une commande SCP, il me demande tjrs le mot de passe des serveurs distants.

D'où vient le problème ?!!!

Merci d'avance.
ajoute -vv à ta commande scp et envois les traces ... vu la date ça servira sans doute à quelqu'un d'autre ;-)
Ou encore si on ne veut/peux pas importer la clé dans le keystore

scp -p -o StrictHostKeyChecking=no /temp/testSCP.txt adminUser@hostname
Ou encore si on ne veut/peux pas importer la clé dans le keystore

scp -p -o StrictHostKeyChecking=no /temp/testSCP.txt adminUser@hostname:
Moi j'ai le même problème et voici les traces de la copie. A la fin on me demande le password
OpenSSH_4.7p1, OpenSSL 0.9.8g 19 Oct 2007
debug1: Reading configuration data /etc/ssh/ssh_config
debug2: ssh_connect: needpriv 0
debug1: Connecting to 99.99.999.999 [99.99.999.999] port 99.
debug1: Connection established.
debug1: identity file /home/monroot/.ssh/identity type -1
debug2: key_type_from_name: unknown key type '-----BEGIN'
debug2: key_type_from_name: unknown key type '-----END'
debug1: identity file /home/monroot/.ssh/id_rsa type 1
debug1: identity file /home/monroot/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.7
debug1: match: OpenSSH_4.7 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_4.7
debug2: fd 3 setting O_NONBLOCK
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit: none,zlib@openssh.com,zlib
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: kex_parse_kexinit: diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1
debug2: kex_parse_kexinit: ssh-rsa,ssh-dss
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,arcfour128,arcfour256,arcfour,aes192-cbc,aes256-cbc,rijndael-cbc@lysator.liu.se,aes128-ctr,aes192-ctr,aes256-ctr
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: hmac-md5,hmac-sha1,umac-64@openssh.com,hmac-ripemd160,hmac-ripemd160@openssh.com,hmac-sha1-96,hmac-md5-96
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_setup: found hmac-md5
debug1: kex: server->client aes128-cbc hmac-md5 none
debug2: mac_setup: found hmac-md5
debug1: kex: client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug2: dh_gen_key: priv key bits set: 131/256
debug2: bits set: 525/1024
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '87.98.183.239' is known and matches the RSA host key.
debug1: Found key in /home/monroot/.ssh/known_hosts:1
debug2: bits set: 515/1024
debug1: ssh_rsa_verify: signature correct
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: /home/monroot/.ssh/identity ((nil))
debug2: key: /home/monroot/.ssh/id_rsa (0x8095bd8)
debug2: key: /home/monroot/.ssh/id_dsa ((nil))
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Next authentication method: publickey
debug1: Trying private key: /home/monroot/.ssh/identity
debug1: Offering public key: /home/monroot/.ssh/id_rsa
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,keyboard-interactive
debug1: Trying private key: /home/monroot/.ssh/id_dsa
debug2: we did not send a packet, disable method
debug1: Next authentication method: keyboard-interactive
debug2: userauth_kbdint
debug2: we sent a keyboard-interactive packet, wait for reply
debug2: input_userauth_info_req
debug2: input_userauth_info_req: num_prompts 1
Password:


et ne souhaite pas utiliser StrictHostKeyChecking pour garder toute la sécurité.

Auriez-vous une idée ?