Agregar public is_rsa.pub aknown_hosts automáticamente: ¿cómo hacerlo?

Agregar public is_rsa.pub aknown_hosts automáticamente: ¿cómo hacerlo?

¿Cómo agregar automáticamente un servidor aknown_hosts? (y no use la huella digital md5, ya que me refiero a una forma segura, no envíe soluciones "auto sí/aceptar". Quiero llevar las credenciales requeridas del servidor a la máquina)

Me gustaría actualizar automáticamente mi known_hostsarchivo ssh para aceptar un nuevo servidor.

Supongo que necesito agregar la clave pública del servidor ( id_rsa.pubobtenida a través de un canal seguro), pero lo que veo es que el formato es diferente (he intentado agregar así awk '{print "server "$1" "$2}' id_rsa.pub > .ssh/known_hostspero la verificación falló. Tenga en cuenta que no quiero usar md5 huella digital por fallas en md5). Si algo más id_rsa.pubfuera útil, puedo ejecutar comandos en el servidor y obtener resultados a través de un canal confiable. (Tenga en cuenta que no es un canal de red (piense en llevar físicamente el pendrive de un lugar a otro), por lo que ssh-keyscanno resuelve el problema. Además, id_rsa.pub es la clave del servidor dropbear que no se ejecuta en el servidor, por lo que solo archivos con claves. están disponibles, no el servidor)

Respuesta1

El nombre id_rsa.pubparece la clave pública de un usuario. Esto no tiene nada que ver con known_hostsalmacenar known_hostsclaves de host. Las claves de host, como su nombre lo indica, autentican un host (es decir, una computadora), mientras que las claves de usuario autentican a un usuario. Las claves públicas del host de OpenSSH normalmente se encuentran en /etco /etc/sshy se denominan algo así como ssh_host_rsa_key.pub.

Dropbear tiene un único archivo que contiene la clave privada. Para extraer la clave pública (en un formato que sea compatible entre Dropbear y OpenSSH), ejecute

dropbearkey -f /etc/dropbear/dropbear_rsa_host_key -y | sed -n 2p >host_key.pub

No creo que OpenSSH venga con un comando para actualizar el known_hostsarchivo. Es bastante fácil hacerlo manualmente:

echo "$server_name,$server_ip_address $(cat server_ssh_host_rsa_key.pub)" >>~/.ssh/known_hosts

Si desea codificar los nombres de host (para que alguien que lea su known_hostsarchivo no pueda conocer los nombres de estos servidores; es una ganancia de privacidad muy pequeña), ejecútelo ssh-keygen -Hdespués.

información relacionada