Q2. Las teclas sshd host no deben estar protegidas por contraseña. Si lo son, sshd no puede leerlos (a menos que configure un agente de host y lo cargue, lo cual es raro). Esto se debe a que sshd está diseñado para ejecutarse en segundo plano y no puede obtener la (s) contraseña (s) del usuario, especialmente porque generalmente se inicia automáticamente en el arranque antes de que cualquier usuario haya iniciado sesión. En su lugar, los archivos para las claves de host sshd deben estar protegidos contra el acceso por cualquier ID de usuario que no sea el que ejecuta sshd , normalmente root, y esa ID de usuario debe estar bien protegida y no debe usarse innecesariamente.
Q1. sshd no necesita un archivo .pub separado porque puede calcular automáticamente la publicación desde la clave privada. En contraste, el cliente ssh (a menos que use un agente) por lo general quiere usar la publicación para una 'sonda' de userauth antes que solicita la contraseña para usar realmente la clave privada, y esto requiere un archivo .pub aparte, excepto cuando se usa el archivo de claves de "nuevo formato" de OpenSSH, que se requiere para Ed25519 desde IIRC 6.5, y el valor predeterminado para las claves todas desde 7.8 hace aproximadamente un mes. Como ssh-keygen no sabe lo que desea, siempre genera un archivo .pub , que no hace daño si no es necesario, incluso si no está protegido, ya que es público.