web-dev-qa-db-fra.com

Connectez-vous à Linux par nom plutôt que par IP

Je suis nouveau sur Linux (j'utilise Ubuntu 10.04) et je viens de terminer la configuration de l'accès SSH à ma machine Linux. Actuellement, je dois utiliser ssh [email protected] pour me connecter, mais je serais bien plus capable d’échanger l’adresse IP contre le nom de l’ordinateur (comme dans Windows avec \\name) ou un nom de domaine (comme computername.example.com).

Je ne sais pas vraiment par où commencer, donc toute aide serait la bienvenue. S'il vous plaît allez lentement, comme mentionné - je suis encore nouveau à cela.


EDIT 1

Complètement oublié de mentionner que j'essaye de me connecter à partir de Windows 7 (via PuTTY) - désolé.

18
Ryall

Protocoles de découverte de réseau local sans configuration, par ordre de préférence:

  • mDNS
    • Utilisé principalement par les produits Apple et certains programmes Linux, mais également disponible pour Windows et éventuellement d'autres plates-formes; utilise la multidiffusion IP.
    • Fournit à la fois la recherche de nom et la découverte de service.
    • Les noms d'hôte sont toujours sous la forme name.local.
    • Logiciel:
      • Bonjour sous Windows;
      • Avahi avec nss_mdns sous Linux;
      • supporté nativement sur OS X et iOS (et, supposément, Android).
  • LLMNR
    • Utilisé pour la résolution de noms par Windows Vista et les versions ultérieures, comme alternative moderne aux services de noms NetBIOS.
    • Très similaire à mDNS, mais avec moins de fonctionnalités - en particulier, manque de détection de service (Windows utilise le protocole WS-Discovery pour cela).
    • Utilise des noms d'hôtes nus (comme NBNS, mais contrairement à mDNS).
    • Logiciel:
      • Nativement pris en charge par Windows Vista et supérieur;
      • systemd-resolved avec nss_resolve (composant de systemd 216) sous Linux.
  • NetBIOS services de noms
    • Partie de la ancienne suite de protocoles réseau NetBIOS utilisée par Windows, OS/2, MS-DOS ... Toujours utilisée. Ce n'est pas une excuse pour commencer à l'utiliser sur de nouveaux réseaux.
    • Permet la résolution de noms et (dans une certaine mesure) la découverte de services - alias "Voisinage réseau" ou "Favoris réseau" dans Windows.
    • Utilise les émissions IPv4 (un peu bavard) et possède son propre protocole complexe et stupide "d'élection de navigateur" pour réduire les conversations. Pas de support IPv6 du tout.
    • Logiciel:
      • Nativement pris en charge sur Windows et OS/2;
      • nmbd avec nss_wins (composant de Samba ) sous Linux et BSD;
      • Apparemment, OS X le supporte aussi en mode natif?

Méthodes souvent préconfigurées pour vous:

  • DNS en utilisant un nom de domaine local (interne)
    • Les passerelles domestiques ont généralement cette fonctionnalité intégrée au cache DNS local. Souvent, il s'agit simplement de dnsmasq, que vous pouvez exécuter manuellement si vous configurez une passerelle Linux/BSD.
    • Ils prennent le nom d'hôte de votre demande DHCP, l'enregistrent dans dnsmasq sous un domaine tel que home et s'offrent en tant que serveur DNS principal (agissent en tant que cache DNS).
    • Fonctionne par défaut avec la plupart des systèmes d'exploitation, mais uniquement avec DHCP (la passerelle ne connaît pas les noms d'hôtes des hôtes static-IP), et a tendance à être plutôt irrégulière dans mon expérience.
    • Logiciel:
      • Un client DHCP standard sur les hôtes. Doit envoyer l'option hostname.
      • dnsmasq sur la passerelle. (Les configurations plus grandes pourraient utiliser dhcpd + named.)

Méthodes impliquant une configuration manuelle:

  • DNS en utilisant votre propre nom de domaine
    • Fonctionne partout. (Ne vous aidera pas à réellement se connecter sur Internet, cependant.)
    • DNS dynamique possible si vous utilisez DHCP et contrôlez un serveur DNS; sinon, toutes les données sont statiques.
    • Besoin de posséder un nom de domaine (qui coûtera quelques dollars).
  • sous-domaines DNS libres
    • Toujours DNS, juste gratuit (ou beaucoup moins cher qu'un domaine), mais aussi assez limité. Des services tels que FreeDNS et Dyn offrent l’enregistrement de sous-domaines individuels sous n domaine qu’ils contrôlent (par exemple myhost.dyndns.com).
      • Trop souvent, le sous-domaine a déjà été choisi par quelqu'un d'autre ...
    • Les mises à jour DNS dynamiques sont souvent autorisées (style DynDNS).
  • /etc/hosts
    • Un fichier texte répertoriant les paires adresse IP - nom d'hôte, qui doit être configuré manuellement sur chaque ordinateur client.
    • (%SystemRoot%\system32\drivers\etc\hosts sous Windows)
  • Configuration SSH
    • Le champ "Nom d'hôte" dans PuTTY ou ~/.ssh/config sous OpenSSH.
    • Doit être configuré manuellement.
  • PostIt note sur tout votre bureau
    • Très bon marché. Aucune politique de nommage. Types de données infinis.
    • Plutôt peu fiable. Doit être distribué manuellement. No TTL, ce qui entraîne souvent la mise en cache d'informations obsolètes pendant des mois jusqu'à ce que quelqu'un le remarque. Les algorithmes de requête sont inefficaces. Les réponses aux requêtes ont tendance à se perdre facilement, laissant parfois juste un enregistrement de colle sur votre moniteur. (Trois mois plus tard, vous les trouverez peut-être tamponnés derrière votre bureau.)
34
grawity

Si vous souhaitez accéder à la machine Linux à partir d'un ordinateur arbitraire, vous aurez besoin d'un nom de domaine. Utilisez un service DNS dynamique pour faire pointer un nom de domaine sur votre ordinateur Linux (ou le routeur auquel il est connecté). Une fois que vous avez configuré cela, cela vous donnera l’avantage supplémentaire de ne pas avoir à vous soucier de l’évolution constante de l’IP de votre ordinateur Linux.

4
M456

À partir de Windows 7 (selon vos modifications) ...

Start -> Run -> notepad c:\windows\system32\drivers\etc\hosts

Lorsque le bloc-notes démarre, allez au bas du fichier et ajoutez votre adresse IP et votre nom d'hôte:

x.x.x.x    mylinuxhostname mylinuxhostname.domain.com

Enregistrez le fichier, puis essayez d’envoyer une commande ping à partir d’une invite de commande:

c:\> ping mylinuxhostname
c:\> ping mylinuxhostname.domain.com

Cela ne fonctionnera que depuis votre réseau local. La connexion depuis "le monde" (selon votre commentaire ajouté) est une toute autre bête impliquant un DNS (dyndns, un ami, etc.) et une configuration de routeur comme la traduction d'adresse réseau (NAT) et autres.

4
Matt

Deux options.

  • Tous les services:

Mettez une entrée pour cela dans /etc/hosts. Ne touchez pas les lignes existantes, ajoutez-en une nouvelle.

  • ssh seulement:

Ajoutez une strophe Host à ~/.ssh/config avec le nom que vous souhaitez utiliser, puis ajoutez les options souhaitées en dessous. Voir man 5 ssh_config pour plus de détails.

Host myserver
    Hostname 192.168.123.234
    Protocol 2
3

Vous allez vouloir enquêter sur Samba ou Winbind. Mon réseau tout Linux (y compris le routeur) peut communiquer entre eux par nom d'hôte, mais je ne sais pas comment dire à Windows comment s'appelle une machine Linux.

2
Broam

J'utilise également Ubuntu 10.04 et je peux me connecter à mes machines en utilisant leur nom. Disons que j'ai des ordinateurs nommés ernie et bert qui sont sur le même réseau:

Mon invite ressemble à ceci sur ernie:

ernie:~$ 

Si je tape ceci:

ernie:~$ ssh [email protected]

Je vais être root sur Bert:

bert:~#

Je le fais entre deux machines ubuntu, mais je suppose que cela fonctionnerait également dans PuTTY. (Je ne sais pas comment se connecter à Windows à partir d'Ubuntu, voir d'autres réponses à propos de samba.)

Vous devez installer sshd dans Ubuntu pour que cela fonctionne: Sudo apt-get install openssh-server

1
idbrii