SSH SCP Archivo local a remoto en Terminal Mac Os X

90

Estoy intentando copiar un archivo local 'magento.tar.gz' de mi máquina local a un servidor remoto usando SSH a través de una VPN. Esto se conecta a la IP interna de la máquina virtual que he usado como xx.xxxx aquí.

Tengo acceso completo 'sudo' en la cuenta SSH, por lo que no debería haber ningún problema para copiar. He probado lo siguiente:

He intentado lo siguiente (el archivo magento.tar.gz ya está en el directorio raíz local)

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

Esto me pide que escriba mi contraseña local. Luego regresacp: [email protected]/var/www: Not a directory

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

Devuelve lo mismo.

¿Necesito incluir un SSH en algún lugar?

¿Necesito conectarme a través de SSH al sitio primero?

Nota al margen: Me las arreglé para conectarme a través de SSH al servidor, buscar el directorio y crear una carpeta y eliminarla usando, sudo mkdiretc., así que definitivamente tengo permisos.

James
fuente

Respuestas:

202

Al principio, debe agregar :después de la dirección IP para indicar que la ruta es la siguiente:

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

No creo que necesites sudoel scp. En este caso, no afecta a la máquina remota, solo al comando local.

Luego, si su user@ xx.xxxx no tiene acceso de escritura /var/www, debe hacerlo en 2 veces:

Copie al servidor remoto en su carpeta de inicio ( :representa su carpeta de inicio remota, utilícela :subfolder/si es necesario o :/home/user/para la ruta completa):

scp magento.tar.gz [email protected]:

Luego SSH y mueva el archivo:

ssh [email protected]
sudo mv magento.tar.gz /var/www
JScoobyCed
fuente
Gracias. Lo intenté con los dos puntos, pero me denegaron el Permiso. Me han informado que tengo acceso completo a sudo, por lo que los permisos no deberían ser un problema.
James
1
¡¡¡Gracias!!! Tuve que usar SSH en el control remoto y pwd para encontrar el directorio predeterminado al que me llevaron, que era / home / username - scp magento.tar.gz [email protected]: / home / username / ¡hizo el truco!
James
19

Solo para aclarar la respuesta dada por JScoobyCed, el comando scp no puede copiar archivos a directorios que requieren permiso administrativo. Sin embargo, puede usar el comando scp para copiar a directorios que pertenecen al usuario remoto.

Entonces, para copiar a un directorio que requiere privilegios de root, primero debe copiar ese archivo a un directorio que pertenece al usuario remoto usando el comando scp. A continuación, debe iniciar sesión en la cuenta remota usando ssh. Una vez que haya iniciado sesión, puede mover el archivo al directorio de su elección utilizando el comando sudo mv. En resumen, los comandos a utilizar son los siguientes:

Usando scp, copie el archivo a un directorio en la cuenta del usuario remoto, por ejemplo, el directorio Documentos:

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

A continuación, inicie sesión en la cuenta del usuario remoto usando ssh y luego mueva el archivo a un directorio restringido usando sudo:

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

Tenga cuidado de que su nombre de archivo tampoco esté :incluido. Descubrí que tenía que hacerlo mv blah-07-08-17-02:69.txt no_colons.txty luego scp no-colons.txt server:no olvides mvvolver al servidor. Por si acaso esto fuera un problema.

pjammer
fuente
1
Eso no es un problema si solo agrega ./antes del nombre local, comoscp ./blah-07-08-17-02:69.txt server:
Anders Tornblad