scp avec clé RSA

Eléphant du PHP | 101 Messages

16 mai 2017, 00:10

Bonjour à tous,

J'utilise scp pour envoyer un fichier local vers un serveur distant sur linux debian, avec une clé RSA pour éviter au script de devoir utiliser un mot de passe. La commande suivante marche bien si je l'exécute dans le terminal:

Code : Tout sélectionner

scp -P 1234 /chemin/fichier/local.txt [email protected]:/chemin/destination/distant

Cependant si j'exécute la même commande dans une boucle foreach avec php, j'obtiens l'erreur "/chemin/destination/distant: No such file or directory".

A priori le dossier distant n'est pas trouvé. Voici le code de la boucle:

foreach ($fichiers as $fichier) {

     // Préparation de la commande
     $cmd = "scp -P 1234 /chemin/fichier/" . $fichier . " [email protected]:/chemin/destination/distant";

     // Exécution de la commande
     shell_exec($cmd);
}

Auriez-vous une idée d'où le pb peut venir?
En vous remerciant pour vos réponses.

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7195 Messages

16 mai 2017, 01:47

Peut être une idée pour debuguer : Ne met pas de chemin et regarde où le fichier est déposé
Quand tout le reste a échoué, lisez le mode d'emploi...

ViPHP
ViPHP | 5880 Messages

16 mai 2017, 09:04

Bonjour,
Est-ce qu'il y a des espaces ou des caractères spéciaux dans le chemin ?
Si oui ils doivent être échappés.
Cordialement