Estoy tratando de usar mi Mac Terminal para scp un archivo de Descargas (phpMyAdmin que descargué en línea) a mi instancia de Amazon EC2.
El comando que usé fue:
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
El error que obtuve: Advertencia: el archivo de identidad myAmazonKey.pem no es accesible: No existe tal archivo o directorio. Permiso denegado (clave pública). conexión perdida
Tanto myAmazonkey.pem como phpMyAdmin-3.4.5-all-languages.tar.gz están en Descargas, así que intenté
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 recibí: Advertencia: el archivo de identidad /Usuario/Hello_Kitty22/Downloads/myAmazonkey.pem no está accesible: No existe dicho archivo o directorio. Permiso denegado (clave pública). conexión perdida
¿Alguien puede decirme cómo solucionar mi problema?
PD: hay una publicación similar: scp (copia segura) a la instancia de ec2 sin contraseña, pero no responde mi pregunta.
fuente
Respuestas:
Intente especificar el usuario a ser
ec2-user
, por ejemploConsulte Conexión a instancias de Linux / UNIX mediante SSH .
fuente
:/
intentaría copiar la carpeta a la raíz del sistema, lo que daría errores de permiso en todas las máquinas sin ejecutar sudo (o como root).el segundo directorio es su destino objetivo, no use el nombre del servidor allí. En otras palabras, no necesita mencionar el nombre de la máquina para la máquina en la que se encuentra actualmente.
-r si es un directorio.
fuente
Su clave no debe ser públicamente visible para que SSH funcione. Use este comando si es necesario:
fuente
Debe estar en su máquina local para probar el comando scp anterior.
En su máquina local intente:
fuente
Aquí están los detalles de lo que funciona para una instancia EC2 :
Algunas notas para comenzar:
-i
scp
significa protocolo de copia segura. Conocer las palabras hace que sea más fácil recordar el comando.-i
dicta que debe dar el.pem
archivo como el próximo parámetro. Si no hay-i
, entonces no necesita a.pem
.:~
en cuenta el al final del destino para la instancia EC2.fuente
Tuve exactamente el mismo problema, mi solución fue
scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:
(déjalo en blanco aquí)una vez que haya hecho esta parte, ingrese al servidor ssh y al archivo mv en la ubicación deseada
fuente
fuente
A continuación, el formato SCP me funciona
SampleFile.txt : será la ruta desde su directorio raíz (en mi caso, / home / ubuntu). en mi caso el archivo que quería descargar estaba en / var / www
SampleFile2.txt : será la ruta de la ruta raíz de su máquina (en mi caso, / home / MyPCUserName)
Entonces, tengo que escribir el siguiente comando
fuente
Enviar archivo de Local a Servidor:
Descargar archivo del servidor a local:
fuente
El proceso de usar SCP para copiar archivos de una máquina local a una instancia de AWS EC2 Linux se trata paso a paso (incluidos los puntos mencionados a continuación) en este video .
Para corregir este problema particular con el uso de SCP:
Debe especificar el usuario de Linux correcto. De Amazon :
Su clave privada no debe ser públicamente visible. Ejecute el siguiente comando para que solo el usuario root pueda leer el archivo.
fuente
Verifique los permisos en el archivo .pem ... A openssh generalmente no le gustan las claves privadas legibles en todo el mundo y fallará (iir, scp no hace un gran trabajo al proporcionar esta retroalimentación al usuario).
¿Puede simplemente ssh con esa clave para su host AWS?
fuente
Primero debe cambiar el modo de
.pem
archivo del modo de lectura y escritura al modo de solo lectura. Esto se puede hacer con un solo comando en la terminalsudo chmod 400 your_public_key.pem
fuente
Intenté todas las sugerencias mencionadas anteriormente y nada funcionó. Terminé la instancia actual, lancé otra y repetí el mismo proceso exacto. Esta vez no hay problemas. A veces puede ser culpa del remoto AMI.
fuente
Esto solo funcionó para mí. Usé una combinación de otras dos respuestas a esta pregunta.
El "[email protected]" se copia y pega del DNS público de su instancia de ec2.
fuente
Yo usaría:
scp -i "path to .pem file" "file to be copeide from local machine" username@amazoninstance: 'destination folder to copy file on remote machine'
fuente