"Agregó permanentemente la key de host de RSA" ¿Qué significa?

Soy muy nuevo en Unix y las cosas a su alnetworkingedor, particularmente para esta pregunta es SSH y authentication.

Sé que puedo crear identidades (crear un par de key pública / privada), ponerlo en ssh-agent y copyr la key pública al host remoto para que pueda SSH al host remoto sin ingresar contraseña. Corrígeme si me equivoco, pero para listr todas las identidades registradas en mi sistema local, solo puedo ejecutar ssh-add -l .

Cuando intenté conectarme a través de SSH (específicamente, estaba intentando conectarme a bitbucket a través de SSH para no tener que escribir mi contraseña una y otra vez), recibo esta advertencia:

Warning: Permanently added the RSA host key for IP address 'xxx.xxx.xxx.xxx' to the list of known hosts.

Después de ceder y proseguí con la llamada "key de host RSA permanentemente añadida", ejecuté ssh-add -l y noté que mi par de key público / privado previamente creado no estaba registrado, pero en cambio parece que una nueva identidad ser creado. Perplejo, revisé el contenido de ~/.ssh/ pero no vi ningún otro file de key pública / privada que no sea el que creé anteriormente.

Traté de eliminar la identidad ejecutando ssh-add -D pero fue en vano: aún aparece cuando ejecuto ssh-add -l .

Mis preguntas son:

  • Que esta pasando? ¿Acabo de crear una nueva identidad cuando mi Unix solicitó mi contraseña local?
  • ¿Dónde puedo encontrar las keys públicas y privadas para la identidad enumerada por ssh-add -l ? ¿Por qué no puedo eliminar la identidad mediante ssh-add -D ?
  • ¿Por qué me conecté con éxito a Bitbucket, mientras que no he agregado la key pública en el administrador de la count, que no sea la que creé anteriormente en ssh-keygen ?
  • Me di count de que esto puede tener algo que ver con el file ~/.ssh/known_hosts , pero no tengo idea de cuál es el propósito del file y cómo se relaciona con todo este negocio de SSH.

He buscado en Internet algunas explicaciones sobre cómo funciona SSH, y cómo Unix gestiona las keys y las identidades públicas / privadas, y cómo funciona el file known_hosts, pero no puedo encontrar ninguno. ¡Cualquier explicación o reference a artículos externos sería muy apreciada!

Un poco más de context: anteriormente, he creado un nuevo par de key pública / privada y lo he agregado al ssh-agent (y he copydo la key pública en Bitbucket, según las instrucciones de Bitbucket). Luego apagué la computadora y la abrí nuevamente al día siguiente. Cuando traté de hacer git fetch , me pidieron que ingresara mi contraseña de usuario local, y aparece la advertencia antes mencionada. Y luego van mis preguntas y confusión.

Palabra key allí es key de host . La primera vez que se conecta a un host, se le presenta una huella digital de la key pública de ese host. El server en sí tiene un par de llaves al igual que los usuarios.

La idea es que puedas verificar la huella digital con lo que sabes que es la huella dactilar de ese server, para asegurarte de que no estás siendo MITMed.

Una vez que acepta la key de host, se guarda en su file known_hosts, que su cliente utiliza para verificar todas las conexiones posteriores.

Si la key de host cambia inesperadamente, su cliente se dará count y mostrará un desagradable post de error, sugiriendo que algo puede estar mal y que debe verificar las cosas.