web-dev-qa-db-fra.com

Comment supprimer le suffixe .local de l'hôte Ubuntu?

Lorsque j'essaie de me connecter à mon appareil Ubuntu avec la commande de terminal ssh, je dois ajouter le suffixe .local au nom d'hôte Ubuntu. Par exemple, si je veux ssh sur mon périphérique avec son nom d'hôte, ma commande ssh doit avoir le suffixe .local et la commande a le format suivant:

ssh username@device_hostname.local 

Je suis conscient que le suffixe .local a été ajouté par le service Linux avahi (zeroconf), mais existe-t-il un moyen rapide (facile) de le contourner? Je veux pouvoir "ssh" mon périphérique uniquement par son nom d'hôte sans suffixe .local à la fin de la commande, comme ceci:

ssh username@device_hostname

Ce que je veux exactement accomplir, c’est de supprimer complètement le suffixe .local du nom d’hôte. J'ai lu des informations sur l'utilisation de mon serveur DNS privé, mais j'aimerais savoir s'il existe une solution moins complexe.

3
Boixos Noi

Vos clients auront besoin d'au moins un moyen de résoudre le nom d'hôte en une adresse IP. Le mécanisme que vous avez déjà découvert fonctionne via la configuration automatique et se produit dans le nom de domaine .local.

Vous pouvez définir le mappage du nom d'hôte aux adresses IP sur chaque client, mais cela n'est pas recommandé.

Vous devrez passer par un mécanisme de résolution automatique des noms, qui nécessitent tous l’utilisation d’un nom de domaine en arrière-plan.

Cependant, vous pouvez facilement éviter de taper le nom de domaine à chaque fois en effectuant l'une des opérations suivantes:

canonicalisation du nom d'hôte ssh

Si vous mettez ce qui suit dans /etc/ssh_config ou ~/.ssh/config:

Host *
  CanonicalDomains local
  CanonicalizeHostname yes

ssh ajoutera automatiquement local à n'importe quel nom d'hôte. Ainsi, lorsque vous tapez ssh Host, il fera en fait ssh Host.local.

domaines de recherche

Bien que ce qui précède ne fonctionne que pour ssh, vous pouvez également configurer un système similaire pour toutes les connexions réseau en configurant le résolveur DNS en conséquence. C'est la manière "classique" d'avoir des raccourcis de nom d'hôte.

Selon votre configuration, vous ajouterez local à la liste des domaines de recherche. C'est ce que je fais. Il devrait y avoir beaucoup de description pour cet objet disponible, comme ceci .

codage en dur vers/etc/hosts

Ce n'est pas recommandé du tout, car bien que cela paraisse simple au début, il deviendra difficile à maintenir bientôt. Mais c’est le seul moyen que je connaisse qui me permette de nous débarrasser complètement des noms de domaine.

Editez le fichier /etc/hosts et ajoutez des lignes comme ceci:

192.168.1.3 Host3
192.168.1.4 Host4

Alors que le premier mot de chaque ligne est l'adresse IP de l'hôte correspondant. Vous devez le faire sur chaque client. Après cela, vous pouvez utiliser ssh Host3, et même en arrière-plan, un nom de domaine ne sera utilisé.

1
Sebastian Stark