Por que é a chave privada para especificar com a opção -i no cliente ssh?

0

Diz-se 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.

Declara que o arquivo de identidade é uma chave PRIVADA.

Mas não viola o princípio de segurança, essa chave privada deve ser mantida em segredo?

Se o ssh transmitir a chave pela rede, isso pode ficar comprometido.

Espero que a máquina de destino mantenha a chave privada e verifique a chave pública do usuário de entrada.

O que está errado no meu entendimento?

Se o ssh está enviando chave privada pela rede, então qual é a vantagem disso apenas usando a senha?

    
por Dims 04.11.2016 / 10:11

1 resposta

6

O SSH nunca envia a chave privada pela rede. Isso seria, de fato, tolo.

A chave privada é usada apenas para responder a um "desafio" do host de destino que é gerado usando a chave pública correspondente. Responder ao desafio sem possuir a chave privada é notoriamente difícil, o que torna seguro esse tipo de comunicação porque você não pode quebrá-lo (em um prazo aceitável) adivinhando ie. força bruta.

    
por 04.11.2016 / 10:35