¿Por qué es una clave privada especificar con la opción -i en el cliente ssh?

¿Por qué es una clave privada especificar con la opción -i en el cliente ssh?

Se dice en ssh man:

-i identity_file
             Selects a file from which the identity (private key) for public key authentication is read.  The default is
             ~/.ssh/identity for protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 and
             ~/.ssh/id_rsa for protocol version 2.  Identity files may also be specified on a per-host basis in the con‐
             figuration file.  It is possible to have multiple -i options (and multiple identities specified in configura‐
             tion files).  If no certificates have been explicitly specified by the CertificateFile directive, ssh will
             also try to load certificate information from the filename obtained by appending -cert.pub to identity file‐
             names.

Afirma que ese archivo de identidad es una clave PRIVADA.

¿Pero no viola el principio de seguridad que la clave privada debe mantenerse en secreto?

Si ssh transmite la clave a través de la red, puede verse comprometida.

Yo esperaría que la máquina de destino mantenga la clave privada y verifique la clave pública del usuario entrante.

¿Qué hay de malo en mi entendimiento?

Si ssh envía una clave privada a través de la red, ¿cuál es su ventaja sobre simplemente usar una contraseña?

Respuesta1

SSH nunca envía la clave privada a través de la red. De hecho, esto sería una tontería.

La clave privada se utiliza simplemente para responder a un "desafío" del host de destino que se genera utilizando la clave pública correspondiente. Responder al desafío sin poseer la clave privada es notoriamente difícil, lo que hace que este tipo de comunicación sea segura porque no se puede romper (en un período de tiempo aceptable) adivinando, es decir. fuerza bruta.

información relacionada