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

6

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 [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.

K. Claesson
la source
@ n8te Donc, je ne devrais pas me connecter à l'hôte distant? Est-ce le problème?
K. Claesson
Je vois, et je trouve cela raisonnable puisque j'exécute cette commande m'invite à fournir le mot de passe pour [email protected]. Lorsque j'ai exécuté la commande ci-dessus sur mon hôte local, le délai a expiré. Je pense que cela est dû à l’utilisation du mauvais port (22 au lieu de 2222). Comment changer le port à utiliser lors de l'exécution de la commande?
K. Claesson
@ n8te Merci, cela a complètement résolu mon problème.
K. Claesson
@ n8te s'il vous plaît, remplissez la réponse avec vos conclusions.
Jakuje
Mon problème était un problème d'autorisations sur le système de fichiers distant. Une fois que j'ai corrigé les autorisations de fichiers, cela fonctionnait à merveille.
James Campbell

Réponses:

6

scp Vous n'avez pas besoin de 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 transférer des fichiers / dossiers de votre PC local vers 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 useron 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/

Ce qui va aussi vous demandera le mot de passe usersur 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 -rde 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' -roption de scpdoit ê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é les -P 2222commentaires ultérieurs de votre part indiquant que vous deviez utiliser le port 2222 au lieu du port standard 22.

n8te
la source