Fichier local SSH SCP vers distant dans le terminal Mac Os X


90

J'essaie de copier un fichier local «magento.tar.gz» de ma machine locale vers un serveur distant en utilisant SSH via un VPN. Ceci se connecte à l'adresse IP interne de la machine virtuelle que j'ai utilisée ici comme xx.xxxx.

J'ai un accès 'sudo' complet sur le compte SSH, donc il ne devrait 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 est déjà dans le répertoire racine local)

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

Cela me demande de taper mon mot de passe local. Retourne ensuitecp: user@xx.x.x.xx/var/www: Not a directory

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

Renvoie la même chose.

Dois-je inclure un SSH n'importe où?

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

Note latérale: j'ai réussi à me connecter via SSH au serveur, à parcourir le répertoire et à créer un dossier et à le supprimer en utilisant sudo mkdiretc. donc j'ai définitivement les autorisations.

Réponses:


202

Au début, vous devez ajouter :après l'adresse IP pour indiquer que le chemin est le suivant:

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

Je ne pense pas que vous devez sudole scp. Dans ce cas, cela n'affecte pas la machine distante, uniquement la commande locale.

Ensuite, si votre user@ xx.xxxx n'a pas d'accès en écriture, /var/wwwvous devez le faire en 2 fois:

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

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

Puis SSH et déplacez le fichier:

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

Merci. Je l'ai essayé avec les deux points mais j'ai obtenu l'autorisation refusée - j'ai été informé que j'avais un accès sudo complet, donc les autorisations ne devraient pas être un problème.
James

1
Merci!!! J'ai dû SSH la télécommande et pwd pour trouver dans quel répertoire par défaut j'étais emmené, qui était / home / username - scp magento.tar.gz user@xx.xxxx: / home / username / a fait l'affaire!
James

19

Juste pour clarifier la réponse donnée par JScoobyCed, la commande scp ne peut pas copier des fichiers dans des répertoires qui nécessitent une autorisation administrative. Cependant, vous pouvez utiliser la commande scp pour copier dans des répertoires appartenant à l'utilisateur distant.

Ainsi, pour copier dans un répertoire nécessitant des privilèges root, vous devez d'abord copier ce fichier 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 ssh. Une fois connecté, vous pouvez ensuite déplacer le fichier vers le répertoire de votre choix en utilisant la commande sudo mv. En bref, les commandes à utiliser sont les suivantes:

À l'aide de 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 vers un répertoire restreint à l'aide de sudo:

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

0

Vérifiez que votre nom de fichier ne contient pas non :plus. J'ai trouvé que je devais le faire mv blah-07-08-17-02:69.txt no_colons.txt, scp no-colons.txt server:puis n'oubliez pas de mvrevenir sur le serveur. Juste au cas où ce serait un problème.


1
Ce n'est pas un problème si vous ajoutez simplement ./avant le nom local, commescp ./blah-07-08-17-02:69.txt server:
Anders Tornblad
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.