2012-07-09 23 views
125

Estoy tratando de usar mi Terminal Mac para copiar un archivo desde Descargas (phpMyAdmin lo descargué en línea) a mi instancia de Amazon EC2.¿Utiliza scp para copiar un archivo a la instancia de Amazon EC2?

El comando que utilicé fue:

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

El error que tengo: Advertencia: el archivo de identidad myAmazonKey.pem no accesible: No existe el fichero o directorio. Permiso denegado (clave pública). perdido la conexión

Tanto mi myAmazonkey.pem y phpMyAdmin-3.4.5-all-languages.tar.gz están en Descargas, por lo que entonces traté

scp -i /Users/Hello_Kitty22/Downloads/myAmazonKey.pem /Users/Hello_Kitty22/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

y el error que tengo: Advertencia: No se puede acceder al archivo de identidad /User/Hello_Kitty22/Downloads/myAmazonkey.pem: no existe dicho archivo o directorio. Permiso denegado (clave pública). conexión perdida

¿Alguien me puede decir cómo solucionar mi problema?

p.s. hay una publicación similar: scp (secure copy) to ec2 instance without password pero no responde mi pregunta.

+0

Siento que cuando inicio mi instancia de Amazon en línea, ya no puedo acceder a mis archivos locales en Descargas – HoKy22

Respuesta

255

intente especificar que el usuario sea ec2-user, por ejemplo,

scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 

Ver Connecting to Linux/UNIX Instances Using SSH.

+0

muchas gracias, funciona muy bien :) – ilight

+8

funciona muy bien. Tenga en cuenta que su usuario predeterminado del usuario puede ser "ubuntu" si está ejecutando una instancia de ubuntu. – RussellStewart

+0

por supuesto copiar a/puede no funcionar. Gracias por iluminar! – dnuske

0

Compruebe los permisos en el archivo .pem ... openssh generalmente no le gusta las claves privadas legibles por el mundo, y fallará (iir, scp no hace un buen trabajo al proporcionar esta retroalimentación al usuario).

¿Puede simplemente enviar esa clave a su host de AWS?

+0

Sí, puedo enviar ssh con esa clave a mi host de AWS. De hecho, el problema que tengo es que estoy en el host de Amazon (a través de ssh), así que cuando lo hago, solo puedo ver los archivos en mi servidor de Amazon, no en mi directorio local de Mac donde guardo mi archivo de pem . Solo puedo enviar un cd a mi directorio local de Mac cuando salgo de mi host ec2. Pero si salgo a mi host ec2, no podría cargar el archivo phpMyAdmin en mi servidor ec2. El permiso de mi peón es 400, creo que está bien. – HoKy22

+1

Muchas gracias por la ayuda, encontré mi problema en la última pregunta que hizo. Parece que puedo ssh o scp, no dos juntos. – HoKy22

+0

gracias por la pista hellokitty22. Tenía dos terminales abiertos uno para ssh y otro para scp también. – donebizkit

8

Debe estar en su máquina local para probar el comando scp anterior.

En la máquina de prueba locales:

scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/. 
-1

me gustaría utilizar:

scp -i "path to .pem file" "file to be copeide from local machine" [email protected]: 'destination folder to copy file on remote machine'

+2

esto es exactamente lo que la persona dijo que intentaron. –

15

segundo directorio es su destino, no use el nombre del servidor allí. En otras palabras, no es necesario mencionar el nombre de la máquina para la máquina que está actualmente en.

scp -i /path/to/your/.pemkey -r /copy/from/path [email protected]:/copy/to/path 

-r si se trata de un directorio.

13

Su clave no debe ser visible públicamente para que SSH funcione. Utilice este comando si es necesario:

chmod 400 yourPublicKeyFile.pem 
2
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile [email protected]:PATH OF SERVER/serverdirectory 
0

En primer lugar, debe cambiar el modo de .pem archivo de leer y escribir en modo de modo de sólo lectura.Esto se puede hacer con sólo un único comando en el terminal sudo chmod 400 your_public_key.pem

4

que tenía exactamente el mismo problema, mi solución fue

scp -i /path/pem -r /path/file/ [email protected] aws dns name: (dejar en blanco aquí)

una vez que termine esta parte, entrar en ssh servidor y archivo mv a la ubicación deseada

0

Probé todas las sugerencias mencionadas anteriormente y nada funcionó. Terminé la instancia actual, lancé otra y repetí el mismo proceso exacto. Esta vez sin problemas. A veces puede ser la culpa del control remoto.

0

El proceso de usar SCP para copiar archivos de una máquina local a una instancia de AWS EC2 Linux se cubre paso a paso (incluidos los puntos mencionados a continuación) en this video.

Para corregir este problema en particular con el uso de SCP:

  1. Es necesario especificar el usuario correcto Linux. De Amazon:

    • Para Amazon Linux, el nombre de usuario es ec2-user.
    • Para RHEL, el nombre de usuario es ec2-user o root.
    • Para Ubuntu, el nombre de usuario es ubuntu o raíz.
    • Para Centos, el nombre de usuario es centos.
    • Para Fedora, el nombre de usuario es ec2-user.
    • Para SUSE, el nombre de usuario es ec2-user o root.
    • De lo contrario, si ec2-user y root no funcionan, consulte con su proveedor de AMI.
  2. Su clave privada no debe ser públicamente visible. Ejecute el siguiente comando para que solo el usuario root pueda leer el archivo.

    chmod 400 /path/to/yourKeyFile.pem 
    
1

Aquí están los detalles de lo que funciona para una EC2 ejemplo:

scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~ 

Pocas notas de inicio:

  1. Nota Los espacios entre los tres parámetros dados después del -i
  2. scp significa protocolo de transferencia segura. Conocer las palabras hace que sea más fácil recordar el comando.
  3. -i dicta que debe dar el archivo .pem como el siguiente parámetro. Si no hay -i, entonces no necesita un .pem.
  4. Tenga en cuenta :~ al final del destino para la instancia de EC2.
Cuestiones relacionadas