Страница руководства говорит это:
хозяин
Хост Ограничивает следующие объявления (вплоть до следующего ключевого слова Host) только для тех хостов, которые соответствуют одному из шаблонов, указанных после ключевого слова. Если предусмотрено несколько шаблонов, они должны быть разделены пробелами. Один `* 'в качестве шаблона может использоваться для обеспечения глобальных значений по умолчанию для всех хостов. Хост - это аргумент имени хоста, указанный в командной строке (т. Е. Имя не преобразуется в канонизированное имя хоста перед сопоставлением).
Запись шаблона может быть отменена путем добавления префикса с восклицательным знаком (`! '). Если отрицаемая запись соответствует, то запись Host игнорируется, независимо от того, совпадают ли какие-либо другие шаблоны в строке. Поэтому отрицательные совпадения полезны для предоставления исключений для подстановочных совпадений.>
Смотрите PATTERNS для получения дополнительной информации о шаблонах.
HostName
HostName Определяет реальное имя хоста для входа. Это может быть использовано для указания псевдонимов или сокращений для хостов. Если имя хоста содержит последовательность символов `% h ', то оно будет заменено на имя хоста, указанное в командной строке (это полезно для манипулирования неквалифицированными именами). По умолчанию используется имя, указанное в командной строке. Также допустимы числовые IP-адреса (как в командной строке, так и в спецификациях HostName).
Например, когда я хочу создать SSH Config для GitHub, какими должны быть соответственно Host и HostName?
Host
это строка, которую пользователь дает в качестве ввода в CLI при вызове SSH;HostName
это строка, которую клиент SSH будет выводить по сети при попытке подключения к серверу.Ответы:
Для github.com вы
~/.ssh/config
можете выглядеть такДля имени хоста: как говорит man, он позволяет вам указывать сокращение для хоста. Например, если вы
~/.ssh/config
похожи на этоЗатем, когда вы печатаете
ssh host1
вы на самом деле войти в host1.example.comssh host2
войти на anotherdomain.comисточник
~/.ssh/config
примере?В простом использовании:
Host
фактическое имя хоста и нетHostName
ИЛИ
Host
это псевдоним хоста &HostName
является фактическим именем хоста.Простой пример:
Примечание: страница справочника технически верна, просто немного странная. Я бы добавил несколько слов для ясности:
HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.
источник
Недавно я хотел что-то сделать с host и hostname, но забыл точный синтаксис ... но поискать его было беспорядком, и man-страница была не слишком полезна. Итак, если предположить, что есть другие, у кого такая же потребность, вот мои лакомые кусочки.
Хост задает аргумент командной строки и может рассматриваться как: а) фактическое имя хоста / IP, б) сокращение, в) псевдоним. HostName - это реальное имя хоста / IP-адрес компьютера, к которому вы подключаетесь. В поле HostName вы можете использовать% h в качестве строки имени хоста, которую вы указываете в командной строке. (Это была часть, которую я хотел использовать в моем примере.)
Итак, допустим, у вас есть набор хостов, где имя хоста начинается с my-proj-host -... и все они находятся в домене .my.proj.domain.com, и мне нужно войти на них, используя определенный ключ ssh my-proj-id-rsa и конкретный идентификатор пользователя my-proj-user. Чтобы сделать мою жизнь проще, я бы добавил следующее в файл ~ / .ssh / config
Теперь я могу ввести
Без конфига это было бы
сэкономив немного печатать (и опечатки).
источник