A host key is used by a server to prove its identity to a client and by a client to verify a
“known” host. Host keys are described as persistent (they are changed infrequently) and
are asymmetric—much like the public/private key pairs discussed above in the Public key
section. If a machine is running only one SSH server, a single host key serves to identify
both the machine and the server. If a machine is running multiple SSH servers, it may
either have multiple host keys or use a single key for multiple servers. Host
authentication guards against the Man-in-the-Middle attack (see the Threats section for
more details). Host keys are often confused with session keys, which are used in the data
encryption process discussed below