¿Puede alguien decirme, para usar SSH, por qué un host también necesita tener una clave pública y privada? ¿Y cómo puedo generar un par de claves pública / privada para mí?
Necesita la clave de host para saber que se está conectando al servidor correcto y no a uno falso.
# private key
openssl genrsa -out privkey.pem 2048
# public key
openssl rsa -in privkey.pem -pubout -out pubkey.pem
Para más información:
http://www.openssl.org/docs/apps/rsa.html
http://www.openssl.org/docs/HOWTO/keys.txt
Difiere de una distribución a otra. En Ubuntu usa este comando:
ssh-keygen
Generará dos claves, una pública (la que compartirá con el servidor) y la otra es privada y no la compartirá con nadie. Una vez que la clave pública se copia en ~ / .ssh / Authorized_keys en el servidor, puede iniciar sesión sin que se le solicite la contraseña.
Las claves públicas / privadas son como cerraduras y claves: el servidor le envía un bloqueo, pero mantiene la clave y luego bloquea sus mensajes en el servidor. También debe enviar un bloqueo al servidor para que pueda recuperar esos datos.
De todos modos para generar claves debes usar ssh-keygen
. Necesita claves públicas y privadas para usar SSL, un sistema de cifrado basado en claves asimétricas.