La página de manual dice esto:
Anfitrión
Host Restringe las siguientes declaraciones (hasta la siguiente palabra clave Host) para que sean solo para aquellos hosts que coincidan con uno de los patrones indicados después de la palabra clave. Si se proporciona más de un patrón, deben estar separados por espacios en blanco. Se puede utilizar un único `*' como patrón para proporcionar valores predeterminados globales para todos los hosts. El host es el argumento del nombre de host proporcionado en la línea de comando (es decir, el nombre no se convierte a un nombre de host canonicalizado antes de hacer coincidir).
Una entrada de patrón se puede negar anteponiendo un signo de exclamación (`!'). Si una entrada negada coincide, entonces la entrada del Host se ignora, independientemente de si coinciden otros patrones en la línea. Por lo tanto, las coincidencias negadas son útiles para proporcionar excepciones a las coincidencias con comodines.>
Consulte PATRONES para obtener más información sobre patrones.
Nombre de host
HostName Especifica el nombre de host real para iniciar sesión. Esto se puede utilizar para especificar apodos o abreviaturas para los hosts. Si el nombre de host contiene la secuencia de caracteres `%h', entonces será reemplazada 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. También se permiten direcciones IP numéricas (tanto en la línea de comando como en las especificaciones de HostName).
Por ejemplo, cuando quiero crear una configuración SSH para GitHub, ¿cuáles deberían ser Host y HostName respectivamente?
Respuesta1
Para github.com tu ~/.ssh/config
podría verse así
Host github.com
IdentityFile ~/.ssh/key_name_for_github
Para el nombre de host: como dice el hombre, le permite especificar una abreviatura para el host. Por ejemplo, si te ~/.ssh/config
ves así
Host host1
HostName host1.example.com
Host host2
HostName anotherdomain.com
Luego cuando escribes
ssh host1
realmente inicias sesión enhost1.ejemplo.comssh host2
iniciar sesión enotrodominio.com
Respuesta2
En uso simple:
Host
es el nombre de host real y no hayHostName
O
Host
es el apodo del host y HostName
es el nombre de host real.
Ejemplo sencillo:
$ cat ~/.ssh/config
Host dev
Hostname <hostname>
User <username>
IdentityFile <path_to_private_key>
$ ssh dev
# Equivalent to "ssh -i <path_to_private_key> <username>@<hostname>"
Nota: La página de manual es técnicamente correcta, sólo que está redactada de forma un poco extraña. Agregaría algunas palabras más para mayor claridad:HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.
Respuesta3
Recientemente quise hacer algo con el host y el nombre de host, pero olvidé la sintaxis exacta... pero buscar en Google fue un desastre y la página de manual no fue muy útil. Entonces, suponiendo que haya otros que tengan la misma necesidad, aquí están mis cositas.
Host especifica el argumento de la línea de comando y podría considerarse como a) nombre de host/IP real, b) taquigrafía, c) alias. El nombre de host es el nombre de host/IP real de la máquina a la que se está conectando. En el campo Nombre de host, puede utilizar %h como la cadena de nombre de host que especifique en la línea de comando. (Esta era la parte que quería usar en mi ejemplo).
Entonces, digamos que tiene un conjunto de hosts donde el nombre de host comienza con my-proj-host-... y todos están en el dominio .my.proj.domain.com, y necesito iniciar sesión en ellos usando una clave ssh específica. my-proj-id-rsa y el ID de usuario específico my-proj-user. Para hacerme la vida más fácil, agregaría lo siguiente al archivo ~/.ssh/config
Hospedar mi-proyecto-host*
Nombre de host %h.mi.proj.dominio.com
Usuario mi-proj-usuario
Archivo de identidad ~/.ssh/my-proj-id-rsa
Ahora puedo escribir
ssh mi-proyecto-host-1234
Sin la configuración, eso habría sido
ssh -i ~/.ssh/mi-proj-id-rsa[correo electrónico protegido]
ahorrando un poco de escritura (y errores tipográficos).