Tengo una instancia EC2 en ejecución que ejecuta el Linux OS ( Amazon Linux AMI release 2018.03 ).
Dado que Windows 10 tiene un cliente SSH disponible en el símbolo del sistema, estaba tratando de ingresar a SSH en mi instancia EC2 usando la clave privada SSH (archivo .pem ) proporcionada por AWS como un par de claves durante la configuración de la instancia EC2 .
El comando que estoy usando en cmd es:
ssh -i private_key.pem ec2-user@3.133.96.240 Aquí private_key.pem es el nombre del archivo de clave privada proporcionado por AWS .
Pero sigo recibiendo el error:
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ Permissions for 'private_key.pem' are too open. It is required that your private key files are NOT accessible by others. This private key will be ignored. Load key "private_key.pem": bad permissions ec2-user@3.133.96.240: Permission denied (publickey).Algunas cosas que me gustaría aclarar:
Hay preguntas similares en StackOverflow. Esas preguntas en realidad implican intentar conectarse a la instancia EC2 desde un host que ejecuta MacOS / Linux (cualquier sistema operativo basado en UNIX ). En mi caso, estoy tratando de conectarme desde el host de Windows 10 usando el símbolo del sistema.
En respuesta a otras preguntas como las discutidas en (1), las personas han sugerido intentar cambiar el permiso de archivo del archivo de clave privada ( .pem ) a solo lectura ( chmod 444 file.pem ). En respuesta, intenté hacer que mi archivo .pem de solo lectura desde las propiedades del archivo en mi Windows . Esto no ayudó. Sigo recibiendo el mismo error.
Puedo conectarme a otros hosts Linux remotos desde mi cmd de Windows 10, lo que sugiere que probablemente no haya ningún problema con mi cliente SSH de Windows 10.
Sé que esta conexión se puede hacer más fácil usando Putty en lugar de CMD , pero de eso no se trata esta pregunta. Solo suponga que, debido a algunas limitaciones, no puedo usar Putty .
Cualquier ayuda sería apreciada.
En Windows 10, busque el archivo pem en cuestión y haga clic derecho sobre él.
Desde Propiedades-->Seguridad--> Avanzado :
1. Asegúrate de que tu usuario sea el propietario del archivo
2. Otorgue permisos de lectura y ejecución para su usuario específicamente,
mientras elimina todos los demás permisos en el archivo para otros usuarios o grupos.
Para usuarios de Windows que usan powershell o bash:
cd en la carpeta your_keys.pem.
tipo
icacls.exe aws_keys.pem /reset
icacls.exe aws_keys.pem /grant:r "$($env:username):(r)"
icacls.exe aws_keys.pem /inheritance:r
Nota: estos comandos otorgan los mismos permisos que chmod 400 your_keys.pem en mac...
y luego use ssh -i "your_keys.pem" ubuntu@your_public_server_ip.com
Tiene razón: es porque el modelo de permisos de Windows difiere de Linux.
Ver más: Comprender los permisos de archivos de Linux - Linux.com
Hay muchos consejos sobre cómo solucionar el problema. Sugeriría aplicar este script desde este repositorio: openssh-portable
Según el código fuente
.Synopsis Establece la ACL de archivo seguro. 1. Se eliminó toda la lista de usuarios excepto el grupo de administradores, el sistema y el usuario actual 2. Si se toma o no el propietario.