amazon-ec2 - publickey - server refused our key aws
¿Utiliza scp para copiar un archivo a la instancia de Amazon EC2? (12)
Estoy tratando de usar mi Terminal Mac para escanear un archivo desde Descargas (phpMyAdmin que descargué en línea) a mi 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 obtuve fue: Advertencia: no se puede acceder al archivo de identidad myAmazonKey.pem: no existe dicho archivo o directorio. Permiso denegado (publickey). conexión perdida
Tanto mi myMamazonkey.pem como phpMyAdmin-3.4.5-all-languages.tar.gz están en Descargas, entonces probé
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 obtuve: Advertencia: archivo de identidad /User/Hello_Kitty22/Downloads/myAmazonkey.pem no accesible: no existe dicho archivo o directorio. Permiso denegado (publickey). conexión perdida
¿Alguien puede decirme cómo solucionar mi problema?
ps hay una publicación similar: scp (copia segura) en la instancia de ec2 sin contraseña pero no responde mi pregunta.
Aquí están los detalles de lo que funciona para una instancia de EC2 :
scp -i /path/to/whatever.pem /users/me/path-to-file [email protected]:~
Algunas notas para comenzar:
- Tenga en cuenta los espacios entre los tres parámetros dados después de la
-i
-
scp
significa protocolo de transferencia segura. Conocer las palabras hace que sea más fácil recordar el comando. -
-i
dicta que debe dar el archivo.pem
como el siguiente parámetro. Si no hay-i
, entonces no necesita un.pem
. - Tenga en cuenta lo siguiente
:~
al final del destino para la instancia de EC2.
Debería estar en su máquina local para probar el comando scp anterior.
En su máquina local, intente:
scp -i ~/Downloads/myAmazonKey.pem ~/Downloads/phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
El proceso de utilizar SCP para copiar archivos de una máquina local a una instancia de AWS EC2 Linux se cubre paso a paso (incluidos los puntos que se mencionan a continuación) en este video .
Para corregir este problema en particular con el uso de SCP:
Necesita especificar el usuario de Linux correcto. 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 root.
- 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, verifique con su proveedor de AMI.
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
Intente especificar que el usuario sea ec2-user
, por ejemplo
scp -i myAmazonKey.pem phpMyAdmin-3.4.5-all-languages.tar.gz [email protected]:~/.
Consulte Conexión a instancias de Linux / UNIX mediante SSH .
Primero debe cambiar el modo del archivo .pem
del modo de lectura y escritura al modo de solo lectura. Esto se puede hacer simplemente con un solo comando en el terminal sudo chmod 400 your_public_key.pem
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.
Su clave no debe ser visible públicamente para que SSH funcione. Use este comando si es necesario:
chmod 400 yourPublicKeyFile.pem
Tenía exactamente el mismo problema, mi solución era
scp -i /path/pem -r /path/file/ ec2-user@public aws dns name:
(déjelo en blanco aquí)
Una vez que hayas hecho esta parte, ingresa al servidor ssh y al archivo mv en la ubicación deseada
Verifique los permisos en el archivo .pem ... openssh generalmente no le gusta las claves privadas legibles a nivel mundial, y fallará (iir, scp no hace un buen trabajo al proporcionar esta retroalimentación al usuario).
¿Puedes simplemente enviar esa clave a tu host de AWS?
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''
el segundo directorio es su destino, no use el nombre del servidor allí. En otras palabras, no necesita mencionar el nombre de la máquina en la que se encuentra actualmente.
scp -i /path/to/your/.pemkey -r /copy/from/path user@server:/copy/to/path
-r si es un directorio.
scp -i ~/path to pem file/file.pem -r(for directory) /PATH OF LOCAL/localfile user@hostname:PATH OF SERVER/serverdirectory