web-dev-qa-db-fra.com

Fichier local SSH SCP sur Remote dans un terminal Mac Os X

J'essaie de copier un fichier local 'magento.tar.gz' de mon ordinateur local vers un serveur distant utilisant SSH via un VPN. Ceci se connecte à l'adresse IP interne de la machine virtuelle que j'ai utilisée ici sous la forme xx.x.x.xx.

J'ai un accès complet 'Sudo' sur le compte SSH, il ne devrait donc y avoir aucun 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 [email protected]/var/www/

Cela me demande de taper mon mot de passe local. Ensuite, retourne cp: [email protected]/var/www: Not a directory

Sudo scp /Users/myname/magento.tar.gz [email protected]/var/www/

Retourne le même.

Dois-je inclure un SSH là-bas?

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

Note latérale: J'ai réussi à me connecter au serveur via SSH, à parcourir le répertoire, à créer un dossier et à le supprimer à l'aide de Sudo mkdir etc.

83
James

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

scp magento.tar.gz [email protected]:/var/www

Je ne pense pas que vous ayez besoin de Sudo le scp. Dans ce cas, cela n'affecte pas la machine distante, seulement la commande locale.

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

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

scp magento.tar.gz [email protected]:

Puis SSH et déplacez le fichier:

ssh [email protected]
Sudo mv magento.tar.gz /var/www
183
JScoobyCed

Juste pour clarifier la réponse donnée par JScoobyCed, la commande scp ne peut pas copier les fichiers dans des répertoires nécessitant 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 qui requiert 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 en utilisant ssh. Une fois connecté, vous pouvez déplacer le fichier dans 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 dans un répertoire restreint à l'aide de Sudo:

ssh remoteUser@some_address
Sudo mv /home/remoteUser/Documents/file /var/www
18
legend12

Veillez à ce que votre nom de fichier ne contienne pas :. J'ai trouvé que je devais mv blah-07-08-17-02:69.txt no_colons.txt puis scp no-colons.txt server: puis n'oubliez pas de revenir mv sur le serveur. Juste au cas où cela poserait un problème.

0
pjammer