La page de manuel dit ceci:
Hôte
Host Restreint les déclarations suivantes (jusqu'au prochain mot-clé Host) à ne concerner que les hôtes qui correspondent à l'un des modèles indiqués après le mot-clé. Si plusieurs motifs sont fournis, ils doivent être séparés par des espaces. Un seul «*» comme modèle peut être utilisé pour fournir des valeurs par défaut globales à tous les hôtes. L'hôte est l'argument de nom d'hôte donné sur la ligne de commande (c'est-à-dire que le nom n'est pas converti en nom d'hôte canonisé avant la correspondance).
Une entrée de modèle peut être annulée en la préfixant avec un point d'exclamation (`! '). Si une entrée annulée est mise en correspondance, l'entrée Hôte est ignorée, que les autres modèles de la ligne correspondent ou non. Les correspondances négatives sont donc utiles pour fournir des exceptions pour les correspondances génériques.>
Voir MODÈLES pour plus d'informations sur les modèles.
HostName
HostName Spécifie le vrai nom d'hôte auquel se connecter. Cela peut être utilisé pour spécifier des surnoms ou des abréviations pour les hôtes. Si le nom d'hôte contient la séquence de caractères `% h ', celle-ci sera remplacée par le nom d'hôte spécifié sur la ligne de commande (ceci est utile pour manipuler des noms non qualifiés). La valeur par défaut est le nom donné sur la ligne de commande. Les adresses IP numériques sont également autorisées (à la fois sur la ligne de commande et dans les spécifications HostName).
Par exemple, lorsque je veux créer une configuration SSH pour GitHub, que doivent être respectivement Host et HostName?
Host
est la chaîne que l'utilisateur donne en entrée sur la CLI lors de l'appel de SSH;HostName
est la chaîne que le client SSH affichera sur le réseau lors de la tentative de connexion au serveur.Réponses:
Pour github.com, vous
~/.ssh/config
pourriez ressembler à ceciPour le nom d'hôte: comme l'homme le dit, il vous permet de spécifier l'abréviation de l'hôte. Par exemple, si votre
~/.ssh/config
apparence ressemble à ceciEnsuite, lorsque vous tapez
ssh host1
vous vous connectez réellement à host1.example.comssh host2
connectez-vous à anotherdomain.comla source
~/.ssh/config
exemple?En utilisation simple:
Host
est le nom d'hôte réel et il n'y a pasHostName
OU
Host
est le surnom de l'hôte etHostName
est le nom d'hôte réel.Exemple simple:
Remarque: La page de manuel est techniquement correcte, elle est juste formulée un peu étrangement. J'ajouterais quelques mots pour plus de clarté:
HostName Specifies the real host name to log into. This can be used *TOGETHER WITH 'HOST'* to specify nicknames or abbreviations for hosts.
la source
J'ai récemment voulu faire quelque chose avec host et hostname, mais j'ai oublié la syntaxe exacte ... mais googler à ce sujet était un gâchis et la page de manuel n'était pas trop utile. Donc, en supposant qu'il y en a d'autres qui ont le même besoin, voici mes friandises.
L'hôte spécifie l'argument de la ligne de commande et peut être considéré comme un) nom d'hôte / IP réel, b) raccourci, c) alias. Le nom d'hôte est le véritable nom d'hôte / IP de la machine à laquelle vous vous connectez. Dans le champ HostName, vous pouvez utiliser% h comme chaîne de nom d'hôte que vous spécifiez sur la ligne de commande. (C'était la partie que je voulais utiliser dans mon exemple.)
Supposons donc que vous ayez un ensemble d'hôtes où le nom d'hôte commence par my-proj-host -... et qu'ils se trouvent tous dans le domaine .my.proj.domain.com, et que je dois me connecter à eux en utilisant une clé ssh spécifique my-proj-id-rsa et l'ID utilisateur spécifique my-proj-user. Pour me faciliter la vie, j'ajouterais ce qui suit au fichier ~ / .ssh / config
Maintenant, je peux taper
Sans la config, cela aurait été
économiser un peu de frappe (et de fautes de frappe).
la source