11 votos

¿Cómo son las claves públicas "enviadas" a los servidores, y cómo las claves privadas "usan" para SSH?

Hay dos máquinas de Linux, a y B. los Scripts que se ejecutan en Una necesidad de ser capaz de SSH en B. por Lo que genera una clave pública (probablemente un ssh-keygen-generadas id_rsa.pub) y, a continuación, utiliza su correspondiente clave privada (de nuevo, probablemente, id_rsa) para hacer que la conexión SSH.

Si hay algo que he dicho anteriormente es incorrecta o engañados, por favor, empiece por la corrección de mí!

Suponiendo que yo estoy más o menos en el destino:

  • ¿Cómo funciona Un "dar" B su clave pública (id_rsa.pub)? ¿Esto tiene que ser un proceso manual, o puede ser automatizado? Si el manual, ¿cuál es el proceso? Si automatizada, ¿cuál es el comando? Cuando B se "mete" esta clave pública, ¿de dónde ir o se almacenan?
  • Cuando se inicia la conexión SSH B, cómo se hace Un "uso" de su clave privada (id_rsa) como parte de esa conexión?

3voto

jondro Puntos 125

Hay dos máquinas de Linux, a y B. los Scripts que se ejecutan en Una necesidad de ser capaz de SSH en B. por Lo que genera una clave pública (probablemente un ssh-keygen-generado id_rsa.bar) y, a continuación, utiliza sus respectivos privado clave (de nuevo, probablemente id_rsa) para hacer que la conexión SSH.

Si hay algo que he dicho anteriormente es incorrecta o engañados, por favor, empiece por la corrección de mí!

Suponiendo que yo estoy más o menos en el destino:



pero B necesita Una clave pública para que sea incluida en B del archivo authorized_keys en orden para ser capaz de conectarse a B

también puede eliminar id_rsa.pub y ssh para B y va a funcionar, porque la clave pública es generado nuevas con cada conexión de ssh y no se almacenan en ningún id_rsa.pub

¿Cómo funciona Un "dar" B su clave pública (id_rsa.pub)? ¿Esto tiene que ser un proceso manual, o puede ser automatizado? Si es manual, lo que la proceso? Si automatizada, ¿cuál es el comando?

manual- algo así como

a partir de Un-

cat ~/.ssh/id_rsa.pub | ssh USER@HOST "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

o aún más de forma manual, para romper el comando de abajo

$ cat id_rsa.pub | ssh user@host 'cat>~/a.a'

a continuación, en la B, asegúrese de ~/.ssh existe, entonces ¿ cat a.a >> ~/.ssh/authorized_keys

y usted puede gato authorized_keys de B antes y después de asegurarse de que la clave está en la lista.

O usted podría enviar id_rsa.pub a una cuenta de correo electrónico, después de B, B puede comprobar el correo electrónico y anexar el contenido de id_rsa.pub en su archivo authorized_keys

automáticamente

El ssh-copy-id comando

Usted necesita ser capaz de ssh, necesita la contraseña de acceso

En lugar de hacer ssh usuario@host que hacer ssh-copy-id de usuario@host y se le pide una contraseña, se introduce, en el que estamos, se va a copiar la clave pública. Y la próxima vez que usted hace ssh usuario@host es el uso de la tecla.

Cuando B se "mete" esta clave pública, ¿de dónde ir o se almacenan?

B ~/.ssh/authorized_keys

Cuando se inicia la conexión SSH B, cómo se hace Un "uso" de su privado clave (id_rsa) como parte de esa conexión?

bueno, yo no sé mucho acerca de que, fuera de la parte superior de mi cabeza, pero lo que se cifra con una clave puede ser descifrado con la clave y la identificación de uno mismo es un poco diferente para el envío de los datos.. y puede ser que exista algo acerca de una clave temporal.

-2voto

adrolmar Puntos 1

ssh-keygen genera las claves privada y pública, que inicialmente residen sólo a nivel local. Dar la clave pública a otro host es algo que el usuario debe hacer manualmente, ya sea mediante el envío a alguien responsable para el servidor B, o si usted tiene una cuenta con una contraseña, puede iniciar sesión y puso allí mismo. Con el fin de permitir sin contraseña de inicio de sesión para el servidor B, deberá agregar su clave pública para el ~/.ssh/authorized_keys del servidor B (una clave pública por línea, puede haber un número cualquiera de las teclas en este archivo). Hay un comando en linux ssh-copy-id que va a copiar el ID y ponerlo en el archivo.

De forma predeterminada, ssh va a utilizar el archivo ~/.ssh/id_XXX como su clave privada. XXX puede ser rsa, dsa, o en cualquier protocolo, para que una clave generada. Si mal no recuerdo, la dsa es viejo y no debe ser utilizado. Si desea utilizar otra clave privada, puede especificar en su comando ssh utilizando -i. Mientras que la clave privada se utiliza coincide con una clave pública en la máquina remota (en el archivo authorized_keys de la cuenta del usuario que va a iniciar en), entonces no será necesario que proporcione una contraseña.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: