web-dev-qa-db-fra.com

Erreur "Aucun fichier ou répertoire de ce type" lors d'une tentative de copie (à l'aide de scp) d'un hôte distant vers une machine locale

J'essaie de copier un fichier (/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.Zip) de mon hôte distant sur le bureau de mon ordinateur local (/ Users/username/Desktop) à l'aide de la commande scp.

Pour ce faire, j'exécute iTerm sur mon Mac et utilise la commande suivante:

scp -r [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.Zip /Users/username/Desktop/

(Il est également intéressant de noter que je suis connecté via ssh à mon hôte distant alors que j'essaie d'exécuter cette commande.)

Lorsque j'exécute la commande, je suis invité à saisir le mot de passe pour [email protected] (ce que je fais), puis le message d'erreur suivant s'affiche:

/ Utilisateurs/Nom d'utilisateur/Bureau: 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 relative à ce problème est très appréciée et j’espère pouvoir obtenir des explications simples et détaillées car je suis tout à fait novice dans l’utilisation de la ligne de commande et de ssh.

6
K. Claesson

scp ne nécessite pas que vous fassiez SSH sur l’ordinateur distant pour faire la copie (et c’est là que vous rencontrez des problèmes avec votre commande).

scp fonctionne essentiellement en mode Push ou Pull. Vous pouvez envoyer des fichiers/dossiers de votre PC local à une télécommande. La syntaxe de 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 extraire des fichiers/dossiers d’un PC distant vers votre PC local. La syntaxe de 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 à user sur remotehost.

Le problème que vous rencontriez avec votre commande ci-dessus est que vous utilisiez la syntaxe d'extraction de données de la commande scp afin de récupérer un fichier d'un hôte distant, mais que vous étiez également SSH dans cet hôte distant lors de son exécution.

La manière correcte d’exécuter cette commande consiste à l’exécuter à partir de votre ordinateur local.

scp -P 2222 [email protected]:/home4/user/public_html/website.com/folder_1/folder_2/file_to_copy.Zip /Users/username/Desktop/

** Notez que j'ai supprimé le superflu -r de votre commande d'origine. Ce n'est pas quelque chose qui va effacer une erreur, mais c'est simplement que ce n'est pas nécessaire dans votre cas. L'option -r de scp doit être utilisée lors de la copie récursive d'un dossier et de tout son contenu. Dans votre cas, vous copiez simplement un fichier, alors ce n'était pas nécessaire.

** J'ai également ajouté le -P 2222 car vos commentaires ultérieurs indiquaient que vous deviez utiliser le port 2222 au lieu du port standard 22.

6
n8te