La página del manual dice esto:
Anfitrión
Host Restringe que las siguientes declaraciones (hasta la siguiente palabra clave Host) sean solo para aquellos hosts que coincidan con uno de los patrones dados después de la palabra clave. Si se proporciona más de un patrón, deben estar separados por espacios en blanco. Se puede usar un solo '*' como patrón para proporcionar valores predeterminados globales para todos los hosts. El host es el argumento del nombre de host dado en la línea de comando (es decir, el nombre no se convierte en un nombre de host canonicalizado antes de la coincidencia).
Se puede negar una entrada de patrón con el prefijo con un signo de exclamación (`! '). Si se coincide con una entrada negada, se ignora la entrada del Host, independientemente de si coinciden otros patrones en la línea. Por lo tanto, las coincidencias negadas son útiles para proporcionar excepciones para las coincidencias con comodines.>
Ver PATRONES para más información sobre patrones.
HostName
HostName Especifica el nombre de host real para iniciar sesión. Esto se puede usar para especificar apodos o abreviaturas para hosts. Si el nombre de host contiene la secuencia de caracteres '% h', se reemplazará con el nombre de host especificado en la línea de comando (esto es útil para manipular nombres no calificados). El valor predeterminado es el nombre dado en la línea de comando. Las direcciones IP numéricas también están permitidas (tanto en la línea de comando como en las especificaciones de HostName).
Por ejemplo, cuando quiero crear una configuración SSH para GitHub, ¿qué deben ser Host y HostName respectivamente?
Host
es la cadena que el usuario da como entrada en la CLI al invocar SSH;HostName
es la cadena que la voluntad cliente SSH de salida por la red al intentar conectarse al servidor.