18 votes

Erreur "No such file or directory" lors de la tentative de copie (en utilisant scp) de l'hôte distant vers la machine locale

Je tente de copier un fichier (/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip) depuis mon hôte distant vers le bureau de ma machine locale (/Users/username/Desktop) en utilisant la commande scp.

Pour ce faire, je lance iTerm sur mon Mac et utilise la commande suivante :

scp -r user@remotehost.com:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/

(Il peut également être utile de noter que je suis connecté via ssh à mon hôte distant lorsque j'essaie d'exécuter cette commande).

Lorsque j'exécute la commande, on me demande de saisir le mot de passe de l'application user@remotehost.com (ce que je fais) et ensuite je reçois le message d'erreur suivant :

/Users/username/Desktop : Aucun fichier ou répertoire de ce type

De même, je n'ai pas pu utiliser scp pour copier des fichiers sur mon hôte distant.

Toute aide concernant ce problème sera très appréciée, et j'espère que je pourrai recevoir des explications simples et complètes car je suis complètement novice dans l'utilisation d'une ligne de commande et de ssh.

15voto

Hyunseok Oh Points 21

scp ne nécessite pas que vous vous connectiez en SSH à l'ordinateur distant pour effectuer la copie (et c'est là que vous rencontrez actuellement des difficultés avec votre commande).

scp fonctionne essentiellement de manière à pousser ou à tirer. Vous pouvez pousser des fichiers/dossiers de votre PC local vers un PC distant. La syntaxe de la commande pour cette méthode est la suivante :

scp /folderpath/tofile/file.txt user@remotehost:/folderpath/tocopyfileto/

Ce qui vous demandera le mot de passe de user sur remotehost .

Vous pouvez également transférer des fichiers/dossiers d'un PC distant vers votre PC local. La syntaxe de la commande pour cette méthode est la suivante :

scp user@remotehost:/folderpath/tofile/file.txt /folderpath/tolocalfolder/

qui vous demandera également le mot de passe pour user sur remotehost .

Le problème que vous rencontrez avec votre commande ci-dessus est que vous utilisez la syntaxe "data pull" de la commande scp afin de récupérer un fichier sur un hôte distant, mais vous êtes également connecté en SSH à cet hôte distant pendant l'exécution de la commande.

La manière correcte d'exécuter cette commande est de l'exécuter depuis votre machine locale

scp -P 2222 user@remotehost.com:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.zip /Users/username/Desktop/

**Notez que j'ai enlevé le superflu -r de votre commande originale. Ce n'est pas quelque chose qui provoquera une erreur, mais c'est juste que ce n'est pas nécessaire dans votre cas. Le site -r option de scp est à utiliser lors de la copie récursive d'un dossier et de tout son contenu. Dans votre cas, vous ne copiez qu'un fichier, ce n'est donc pas nécessaire.

**J'ai également ajouté le -P 2222 puisque des commentaires ultérieurs de votre part ont indiqué que vous deviez utiliser le port 2222 au lieu du port standard 22.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X