La mia ipotesi sarebbe che il client annuncia la coppia di chiavi che sta usando , dando la chiave pubblica (ovviamente!). Ma in effetti, la chiave fornita con quel messaggio è una chiave privata, che non capisco del tutto perché. Ho provato con ssh -vvv con un server che 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
Dato che ho due chiavi su questo computer: quella RSA e quella ECDSA, sembra che il server abbia rifiutato la mia chiave RSA. Va bene, non ho fornito la chiave RSA a questo server . Quindi, cerca di trovare una chiave DSA e una chiave ECDSA, ma non ho nessuna di queste, quindi la "nessuna identità" è comprensibile. Quindi, possiedo una chiave ED25519, e prova questo. E ciò va bene, dal momento che ho registrato questa coppia di chiavi su quel server. Nota che accetta la mia chiave pubblica adesso!
Quindi, il protocollo continua a superare una sfida in cui il server ora sa quale chiave pubblica utilizzare per criptare la sfida e il client (la mia macchina) sa quale chiave privata utilizzare per questa sfida.