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.
la source
Réponses:
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:
Ce qui vous demandera le mot de passe de
user
onremotehost
.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:
Ce qui va aussi vous demandera le mot de passe
user
surremotehost
.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.
** 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'-r
option descp
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é les
-P 2222
commentaires ultérieurs de votre part indiquant que vous deviez utiliser le port 2222 au lieu du port standard 22.la source