Supongo que el cliente anunciará el par de claves que está utilizando , dando la clave pública (¡por supuesto!). Pero, de hecho, la clave dada con ese mensaje es una clave privada, que no entiendo completamente por qué. Probé con un ssh -vvv con un servidor que uso
debug1: Offering RSA public key: /home/user/.ssh/id_rsa
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
debug1: Trying private key: /home/user/.ssh/id_dsa
debug3: no such identity: /home/user/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/user/.ssh/id_ecdsa
debug3: no such identity: /home/user/.ssh/id_ecdsa: No such file or directory
debug1: Offering ED25519 public key: /home/user/.ssh/id_ed25519
debug3: send_pubkey_test
debug2: we sent a publickey packet, wait for reply
debug1: Server accepts key: pkalg ssh-ed25519 blen 51
Como tengo 2 claves en esta computadora: la RSA one y la ECDSA one, parece que el servidor rechazó mi clave RSA. Está bien, no proporcioné la clave RSA a este servidor . Luego, trata de encontrar un DSA y una clave ECDSA, pero no tengo ninguno de estos, por lo que la "no hay tal identidad" es comprensible. Entonces, tengo una clave ED25519, y prueba esta. Y eso va bien, ya que registré este par de claves en ese servidor. Tenga en cuenta que acepta mi clave pública ahora!
Luego, el protocolo continúa ejecutándose a través de un desafío donde el servidor ahora sabe qué clave pública usa para cifrar el desafío , y el cliente (mi máquina) sabe qué clave privada usar para este desafío.