Mi cerebro está envuelto alrededor del eje en teclas públicas y privadas. Cuando crea un servidor en la nube (instancia) en el servicio EC2 de Amazon y luego quiere conectarse a él a través de SSH, Amazon requiere que descargue una clave privada para realizar la conexión. ¿La idea detrás de la clave pública / privada no sugiere que Amazon deba exigirle que descargue una pública?
Además, si configuro un servidor SFTP para que lo use un cliente, ¿debería instalar su clave en el servidor o darle una clave del servidor? En cualquier caso, ¿debería ser una clave pública o privada?
Respuestas:
Pensando más profundamente en el proceso de autenticación, ¿qué debe mantenerse en secreto? Amazon conoce la mitad pública de la clave, y cualquiera puede conocer la mitad pública. La mitad pública del par de claves, cuando se combina con la mitad privada, denota que la mitad privada se usó para autenticar.
Su clave privada que se le proporciona cuando Amazon genera un par de claves para usted solo es útil si usted es el único que la tiene. Si no es un secreto, cualquier otra persona que lo sepa también puede autenticarse ante cualquiera que tenga la mitad pública del par de claves.
Quien sea autenticado debe tener la mitad privada . Está bien si todos en el mundo pueden autenticarlo manteniendo la mitad pública de la clave, pero solo usted debe tener el control de la mitad privada.
fuente
Amazon proporciona servicios de generación de claves porque algunos sistemas operativos (tos, Windows, tos) pueden no facilitar la generación de los pares de claves SSH.
Con SSH (y SFTP), la clave pública se instala en el archivo autorizado de claves del usuario cuando se inicia la instancia EC2. La clave privada solo la posee el usuario y se presenta para autenticarse en el servidor.
De la documentación en:
http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateKeyPair.html
parece que Amazon genera el par de claves en sus servidores y le envía la clave privada a través de HTTPS. Esto es quizás menos que perfecto (idealmente, usted y nadie más tendrá posesión de la clave privada), pero probablemente no tan terriblemente, dado que todo esto ocurre en el contexto de su sesión autenticada y solo usted (y Amazon temporalmente) ven La clave privada. También siempre puede generar y cargar su propia clave pública para el uso de EC2, mientras mantiene la clave privada estrictamente privada.
Para configurar usuarios SFTP para la autenticación de claves, deberían generar claves SSH en sus máquinas. Una vez que generan un par de claves, solo deberían enviarle la clave pública para instalar en el archivo autorizado de claves autorizadas. La clave privada, como su nombre lo indica, es privada.
fuente
La autenticación de clave pública funciona en la dirección inversa a la que probablemente esté pensando. La clave pública cifra los mensajes y la clave privada los descifra. El servidor almacena la clave pública del titular de la cuenta y la usa para cifrar un mensaje. Solo el titular de la clave privada puede descifrar ese mensaje.
Si envía a alguien un secreto encriptado con su clave pública, si puede decirle cuál es ese secreto, entonces sabrá que tiene la clave privada correspondiente. El usuario luego se autentica.
AWS requiere que descargue y guarde su clave privada porque no la almacenarán, por razones de seguridad. Debido a que la clave privada no se almacena en ningún lugar en AWS, puede estar seguro de que su instancia EC2 es segura.
fuente
En cierto sentido, no importa. Un par de claves privada / pública consta de dos partes, y cuál de ellas es la pública depende de usted. Si algo se cifra con una clave, necesita la otra para descifrarla. Si ha publicado una clave públicamente y no la otra, la clave privada es la que no publicó.
Llegando a su pregunta real: presumiblemente, la clave que Amazon le brinda es permitirle controlar sus propios recursos, por lo que no se debe dar a otras personas. En este contexto, debe confiar en Amazon para tener su clave privada, al menos durante el tiempo suficiente para configurarla.
Si desea que su cliente inicie sesión de esta manera, necesita que le den una clave que estén preparados para compartir con usted, por lo tanto, su clave pública. Lo instala en el servidor en claves_autorizadas, lo que efectivamente dice que "cualquiera que posea la clave privada que coincida con esta pública puede acceder a este recurso".
fuente