desarrollo-web-br-bd.com

¿Cuál es el permiso de archivo correcto para un archivo .pem para SSH y SCP?

He intentado SSH en mi servidor AWS Ubuntu y copiar el directorio a mi máquina local. A lo largo del proceso, experimento diferentes errores de permisos de archivos (que se indican a continuación).

¿Se necesita un permiso de archivo específico para el archivo .pem que me permita utilizar SSH y SCP?
¿O necesito cambiar el permiso de archivo dos veces, una para SSH y otra para SCP después de iniciar sesión?

Aquí están los comandos que estoy usando:

SSH:

ssh -i sentiment.pem [email protected]

Copie de la computadora remota a la local con:

scp [email protected]:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal

Estoy en una Mac OS X 10.7.5.


Prueba y error:

1.) Después de descargar inicialmente el archivo .pem, sus permisos se establecieron en, PIENSO: 0644

-rw-r - r - @ 1 personal de Toga 1692 18 de febrero 21:27 sentiment.pem

Luego intenté SSH a través de la terminal y recibí lo siguiente:

WARNING: UNPROTECTED PRIVATE KEY FILE! 
Permissions 0644 for 'sentiment.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: sentiment.pem
Permission denied (publickey).

2.) Actualicé los permisos del archivo a: chmod 660 sentiment.pem

Después de la actualización, los permisos se establecieron en:

-rw-rw ---- @ 1 personal de Toga 1692 18 de febrero 21:27 sentiment.pem

Luego intenté SSH a través de la terminal y recibí lo siguiente:

WARNING: UNPROTECTED PRIVATE KEY FILE! 
Permissions 0660 for 'sentiment.pem' are too open.
It is recommended that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: sentiment.pem
Permission denied (publickey).

3.) Actualicé los permisos del archivo a: chmod 600 sentiment.pem

Después de la actualización, los permisos se establecieron en:

-rw ------- @ 1 personal de Toga 1692 18 de febrero 21:27 sentiment.pem

¡Entonces intenté SSH a través de la terminal y tuve éxito!

4.) Ahora conectado, ejecuto un comando para copiar el directorio remoto a mi computadora local con:

scp [email protected]:/home/ubuntu/sentimentfolder /Users/Toga/Desktop/sentimentlocal

Que devuelve:

Permission denied (publickey).

Comandos de SCP intentados:

1.) agregó el comando -i y hizo referencia al archivo .pem:

scp -i sentiment.pem [email protected]:/home/ubuntu/sentimentfolder/Users/Toga/Desktop/sentimentlocal

2.) agregó el comando -i, hizo referencia al archivo .pem y cambió el usuario de AWS a ec2-user:

scp -i sentiment.pem [email protected]:/home/ubuntu/sentimentfolder/Users/Toga/Desktop/sentimentlocal

3.) agregó el comando -i, hizo referencia al archivo .pem, cambió el usuario de AWS a ec2-user y agregó la ruta completa del archivo para la ubicación del archivo .pem:

scp -i /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem [email protected]:/home/ubuntu/sentiment/Users/Toga/Desktop/sentimentlocal

81
George Jester

Visite aquí Cómo conectarse a Amazon EC2 de forma remota utilizando SSH o consulte a continuación.

Cómo conectarse a Amazon EC2 de forma remota mediante SSH:

  1. Descargue el archivo .pem.
  2. En Amazon Dashboard, elija "Instancias" en la barra lateral izquierda y luego seleccione la instancia a la que desea conectarse.
  3. Haga clic en "Acciones", luego seleccione "Conectar"
  4. Haga clic en "Conectar con un cliente SSH independiente"
  5. Abre una ventana de Terminal
  6. Crea un directorio:

    # mkdir -p ~/.ssh
    
  7. Mueva el archivo .pem descargado al directorio .ssh que acabamos de crear:

    # mv ~/Downloads/ec2private.pem ~/.ssh
    
  8. Cambie los permisos del archivo .pem para que solo el usuario root pueda leerlo:

    # chmod 400 ~/.ssh/ec2private.pem
    
  9. Crea un archivo de configuración:

    # vim ~/.ssh/config
    

    Ingrese el siguiente texto en ese archivo de configuración:

    Host *amazonaws.com
    IdentityFile ~/.ssh/ec2private.pem
    User ec2-user
    

    Guarda ese archivo.

  10. Use el comando ssh con su nombre de host DNS público para conectarse a su instancia.
    p.ej.:

    # ssh ec2-54-23-23-23-34.example.amazonaws.com
    
126
Babin Lonston

chmod 400 {keyfile}.pem es lo que Amazon instruyó y funciona.

21
John Zhang
chmod 0400 pemfile.pem

y

ssh -i path_to_pem_file -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no ec2-machine name
5
harsha konreddy

Parece que se supone que no debe usar la dirección IP, sino el nombre de host completo del sistema en el comando SCP. Los documentos de AWS describen esto en http://docs.aws.Amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html en la sección "Transferencia de archivos a instancias Linux/Unix desde Linux/Unix con SCP ".

Y use -r para copiar directorios.

Y tenga en cuenta que el nombre de usuario predeterminado es diferente para diferentes imágenes:

Para Amazon Linux, el nombre de usuario predeterminado es ec2-user. Para RHEL5, el nombre de usuario suele ser root pero podría ser ec2-user. Para Ubuntu, el nombre de usuario es ubuntu. Para SUSE Linux, el nombre de usuario es root. De lo contrario, consulte con su proveedor de AMI.

Entonces, use este comando:

scp -r -i  /Users/Toga/Desktop/rollup/Personal/Serial_Project_Starter/sentiment/sentiment.pem [email protected]:~/sentiment /Users/Toga/Desktop/sentimentlocal
3
daniel kullmann

El "Permiso denegado (clave pública)" proviene del servidor remoto, por lo que está utilizando la clave incorrecta, no está permitido conectarse o hay un error tipográfico en el archivo remote_keys remoto.

2
maedox