Transfiera archivos usando scp: permiso denegado


23

Intento transferir archivos desde una computadora remota ssha mi computadora:

scp My_file.txt user_id@server:/Home

Esto debería poner My_file.txt en la carpeta de inicio en mi propia computadora, ¿verdad? yo obtengo

scp / Home: permiso denegado

También cuando intento: ...@server:/Desktoppara copiar los archivos de la computadora remota a mi escritorio.

¿Qué estoy haciendo mal?


1
Si desea copiar el archivo en la carpeta de inicio de 'user_id', use scp My_file.txt user_id@server:Copias en la carpeta de inicio de los usuarios.
Manula Waidyanatha

Respuestas:


36

Sus comandos están intentando colocar el nuevo documento en la raíz ( /) de su máquina. Lo que desea hacer es transferirlos a su directorio de inicio (ya que no tiene permisos para escribir /). Si el camino a su casa es algo así, /home/erezintente lo siguiente:

scp My_file.txt user_id@server:/home/erez/

Puede sustituir la ruta de acceso a su directorio de inicio con el acceso directo ~/, por lo que lo siguiente tendrá el mismo efecto:

scp My_file.txt user_id@server:~/

Incluso puede omitir el camino por completo en el lado remoto; Esto significa su directorio de inicio.

scp My_file.txt user_id@server:

Es decir, para copiar el archivo a su escritorio, puede transferirlo a /home/erez/Desktop/:

scp My_file.txt user_id@server:/home/erez/Desktop/

o usando el atajo:

scp My_file.txt user_id@server:~/Desktop/

o usando una ruta relativa en el lado remoto, que se interpreta en relación con su directorio de inicio:

scp My_file.txt user_id@server:Desktop/

Editar:

Como @ckhan ya mencionó, también debe intercambiar los argumentos, tiene que ser

scp FROM TO

Entonces, si desea copiar el archivo My_file.txtdel servidor user_id@servera su escritorio, debe intentar lo siguiente:

scp user_id@server:/path/to/My_file.txt ~/Desktop/

Si el archivo My_file.txtse encuentra en su directorio de inicio en el servidor, puede usar nuevamente el acceso directo:

scp user_id@server:~/My_file.txt ~/Desktop/

- He intentado: "~ /" para 'Inicio' ahora, y también "~ / Desktop /. Ambos resultaron en: My_file.txt 100% 0 0.0 KB / s 00:00, y no puedo ver los archivos en mi carpetas. ¿Qué sigo haciendo mal? ¡Muchas gracias!
Erez

En su segundo ejemplo de comando, ~debe protegerse de la evaluación para ser evaluado en el host remoto: \~por ejemplo.
dan

1
Para agradecerles, me registré en el sitio web. Gracias me salvaste el día :)
Ad Infinitum

6

Vine aquí para "Transferir archivos usando scp: permiso denegado" porque tuve el mismo error.

En mi caso, el archivo descargado con scp habría sobrescrito un archivo propiedad de root, y yo no era root. En resumen, verifique la propiedad del archivo que se sobrescribe.


1
En este caso es porque está tratando de escribir /Homey no ser root, no tiene acceso de escritura afuera~/
Shadur

Tu me ayudas
Longdeqidao

4

esto parece ser un problema de permisos

Es posible que el archivo no tenga permisos de lectura, ya que se entrega al servidor de destino como la cuenta de origen.

debe asegurarse de que el archivo en la fuente tenga los permisos necesarios, especialmente el permiso de lectura

-rw-r - r--

chmod 744

luego scp el archivo a destino. Esto se resolverá


3
-rw-r--r--es 644, no 744. Establecer permisos ejecutables en un archivo que no es realmente ejecutable puede causar problemas.
G-Man dice 'Restablecer a Mónica'

3

Lo que fija el "permiso denegado" para mí fue, en el servidor remoto, cambie la propiedad carpeta a la raíz: (Esto puede suceder cuando se está enviando un archivo a un usuario que no sea root, y el directorio es propiedad de la raíz) En la máquina remota (copiando dest.):

sudo chown (your username) (remote folder)

También para estar seguro, habilite todos los permisos en la carpeta remota: (No siempre es necesario):

sudo chmod 777 (remote folder)

1

Tienes los argumentos para scprevertir. Primero es la fuente, luego el destino, como cp. man scppara más detalles.


1

Permiso denegado significa que usted no es la raíz del servidor. Solo tienes una cuenta allí. Entonces, en ese caso, debe hacer esto:

sudo scp -r /path2yourFolder/ username@server_Ip:/home/username

Esto se copiará en su directorio de inicio en el servidor.

Esto también funcionará:

scp -r /path2yourFolder/ username@server_Ip:~/

0

Instale una herramienta de Windows "mRemoteG" desde www.mremoteng.org/

Cree su conexión SSH a la casilla deseada.

Haga clic en el menú "Transferir archivo".

Permitirá transferir archivos fácilmente de Windows a Linux.

Gracias.


0

Amazon Linux AMI

Asegúrese de que necesita establecer la ruta absoluta del servidor, desde su casa en el caso actual:

scp file.txt SSH-ALIAS:/home/YOUR_USER/

0

Los mismos permisos se aplican a ambos lados del scp. Recibirá este error si el usuario no tiene permiso para escribir en el destino. Los síntomas parecen implicar el origen, sin embargo, en mi caso, el destino fue creado por root y carecía de permiso de escritura para la cuenta de usuario deseada.


0

En mi caso, también traté de otorgar todos los permisos con -R a la carpeta pero aún recibí el error sobre el permiso.

Tuve que eliminar "/" antes de la ruta del servidor de destino y la carpeta. La razón es porque Descargas es la primera carpeta que puedo enumerar después de enviar ssh al servidor, por ejemplo: ssh tiennsloit@13.76.91.2

Esto funciona:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: Descargas

Esto no estaba funcionando:

sudo scp -rp /Users/macintosh.vn/Downloads/bbhs_20190301.zip tiennsloit@13.76.91.2: / Descargas


0

Solución fácil Asegúrate de que eres root. SCP al control remoto y le pedirá la contraseña de root de esa máquina. Acabo de tener este problema que era la solución. Tú los enraizas.


Dado que los inicios de sesión raíz están normalmente deshabilitados en sshd_config , debe mostrarle al OP cómo cambiar esto (aunque no se recomienda).
ajgringo619

¿Por qué insiste en usar la raíz para copiar un (cualquier) archivo? Observe también la respuesta aceptada de hace ~ 7 años ...
Jeff Schaller

-3

antes de usar el comando scp, asegúrese de otorgar permisos de lectura, escritura y ejecución a todos los que están fuera. "nombre_archivo chmod 777"


puede copiar archivos que no son 777
Archemar
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.