97 votes

SSH SCP Fichier local vers fichier distant dans Terminal Mac Os X

J'essaie de copier un fichier local 'magento.tar.gz' de ma machine locale vers un serveur distant en utilisant SSH à travers un VPN. Je me connecte à l'IP interne de la machine virtuelle que j'ai utilisée comme xx.x.x.xx ici.

J'ai un accès 'sudo' complet sur le compte SSH, il ne devrait donc pas y avoir de problème de copie. J'ai essayé ce qui suit :

J'ai essayé ce qui suit (le fichier magento.tar.gz se trouve déjà dans le répertoire Root local)

sudo scp magento.tar.gz user@xx.x.x.xx/var/www/

Il me demande de saisir mon mot de passe local. Il renvoie ensuite cp: user@xx.x.x.xx/var/www: Not a directory

sudo scp /Users/myname/magento.tar.gz user@xx.x.x.xx/var/www/

Retourne la même chose.

Dois-je inclure un SSH quelque part ?

Dois-je d'abord me connecter au site via SSH ?

Note complémentaire : j'ai réussi à me connecter via SSH au serveur, à naviguer dans le répertoire, à créer un dossier et à l'effacer en utilisant sudo mkdir etc. J'ai donc des autorisations.

214voto

JScoobyCed Points 4232

Dans un premier temps, vous devez ajouter : après l'adresse IP pour indiquer que le chemin est suivi :

scp magento.tar.gz user@xx.x.x.xx:/var/www

Je ne pense pas que vous ayez besoin de sudo les scp . Dans ce cas, cela n'affecte pas la machine distante, mais uniquement la commande locale.

Ensuite, si votre user @xx.x.x.xx n'a pas d'accès en écriture à /var/www vous devez alors le faire en deux fois :

Copier sur le serveur distant dans votre dossier personnel ( : représente votre dossier personnel distant, utilisez :subfolder/ si nécessaire, ou :/home/user/ pour le chemin d'accès complet) :

scp magento.tar.gz user@xx.x.x.xx:

Ensuite, vous pouvez déplacer le fichier par SSH :

ssh user@xx.x.x.xx
sudo mv magento.tar.gz /var/www

0 votes

Merci. J'ai essayé avec les deux points mais j'ai obtenu un refus de permission - j'ai été informé que j'avais un accès sudo complet donc les permissions ne devraient pas être un problème.

1 votes

Merci !!! J'ai du SSHer le remote et le pwd pour trouver le répertoire par défaut dans lequel j'ai été emmené qui était /home/username - scp magento.tar.gz user@xx.x.x.xx:/home/username/ a fait l'affaire !

19voto

legend12 Points 241

Pour clarifier la réponse donnée par JScoobyCed, la commande scp ne peut pas copier de fichiers dans des répertoires qui requièrent des autorisations administratives. Cependant, vous pouvez utiliser la commande scp pour copier des fichiers dans des répertoires appartenant à l'utilisateur distant.

Ainsi, pour copier un fichier dans un répertoire nécessitant des privilèges root, vous devez d'abord le copier dans un répertoire appartenant à l'utilisateur distant à l'aide de la commande scp. Ensuite, vous devez vous connecter au compte distant à l'aide de la commande ssh. Une fois connecté, vous pouvez déplacer le fichier dans le répertoire de votre choix à l'aide de la commande sudo mv. En résumé, les commandes à utiliser sont les suivantes :

En utilisant scp, copiez le fichier dans un répertoire du compte de l'utilisateur distant, par exemple le répertoire Documents :

scp /path/to/your/local/file remoteUser@some_address:/home/remoteUser/Documents

Ensuite, connectez-vous au compte de l'utilisateur distant à l'aide de ssh, puis déplacez le fichier dans un répertoire restreint à l'aide de sudo :

ssh remoteUser@some_address
sudo mv /home/remoteUser/Documents/file /var/www

0voto

pjammer Points 5042

Veillez à ce que le nom de votre fichier ne contienne pas de : dans eux non plus. Je me suis rendu compte que je devais mv blah-07-08-17-02:69.txt no_colons.txt y luego scp no-colons.txt server: n'oubliez pas de mv sur le serveur. Juste au cas où cela poserait un problème.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X