Por que a chave privada deve ser especificada com a opção -i no cliente ssh?

Por que a chave privada deve ser especificada com a opção -i no cliente ssh?

É dito em 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 o arquivo de identidade é uma chave PRIVADA.

Mas não viola o princípio de segurança que a chave privada seja mantida em segredo?

Se o ssh transmitir a chave pela rede, ela poderá ser comprometida.

Eu esperaria que a máquina de destino mantivesse a chave privada e verificasse a chave pública do usuário recebido.

O que há de errado no meu entendimento?

Se o ssh está enviando uma chave privada pela rede, qual é a vantagem dele em apenas usar a senha?

Responder1

O SSH nunca envia a chave privada pela rede. Isto seria, de facto, uma tolice.

A chave privada é usada apenas para responder a um “desafio” do host alvo que é gerado usando a chave pública correspondente. Responder ao desafio sem possuir a chave privada é notoriamente difícil, o que torna este tipo de comunicação segura porque você não pode quebrá-la (em um período de tempo aceitável) adivinhando, ou seja. força bruta.

informação relacionada