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

18

Je suis nouveau sur Linux (exécutant actuellement 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 préférerais de beaucoup pouvoir échanger l'IP pour 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 très appréciée. S'il vous plaît, allez lentement, comme mentionné - je suis encore nouveau dans ce domaine.


EDIT 1

J'ai complètement oublié de mentionner que j'essaie de me connecter à partir de Windows 7 (via PuTTY) - désolé.

Ryall
la source
Essayez-vous de vous connecter uniquement à partir de votre réseau local ou de n'importe où dans le monde?
Karl Bielefeldt
6
De plus, FYI autorisant les connexions via ssh en tant que root est généralement considéré comme une mauvaise idée en termes de sécurité. Il est recommandé de se connecter en tant qu'utilisateur normal et d'utiliser su ou sudo à partir de là.
Karl Bielefeldt
Mon LAN et le monde (même si je pense que je sais comment configurer l'accès au monde, cette question s'adresse donc plus au LAN) - et le root @ était plus un exemple que n'importe quoi - j'utilise en fait un utilisateur.
Ryall
Beaucoup de bonnes réponses - merci à tous - bien que je devais en choisir une, j'ai donc choisi la plus détaillée.
Ryall le

Réponses:

36

Protocoles de découverte LAN à configuration zéro, 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 noms et la découverte de services.
    • Les noms d'hôtes sont toujours dans le formulaire name.local.
    • Logiciel:
      • pris en charge en natif sur Windows 10.1709 et versions ultérieures (doit être activé via le Registre);
      • Bonjour sur les anciennes fenêtres;
      • Avahi avec nss_mdnssous Linux;
      • pris en charge nativement sur OS X et iOS (et, soi-disant, Android).
  • LLMNR
    • Utilisé pour la résolution de noms par Windows Vista et supérieur, comme alternative moderne aux services de noms NetBIOS.
    • Très similaire à mDNS, mais a moins de fonctionnalités - en particulier, manque de découverte de service (Windows utilise le protocole WS-Discovery pour cela).
    • Utilise des noms d'hôtes nus (comme NBNS, mais contrairement à mDNS).
    • Logiciel:
      • Prise en charge native par Windows Vista et versions ultérieures;
      • systemd-resolvedavec nss_resolve(partie de systemd 216) sous Linux. .
  • Services de noms NetBIOS
    • Une partie de l' ancienne suite de protocoles réseau NetBIOS utilisée par Windows, OS / 2, MS-DOS ... Toujours utilisée. Pas une excuse pour commencer à l'utiliser sur de nouveaux réseaux.
    • Fournit 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 des diffusions IPv4 (quelque peu bavardes) et possède son propre protocole complexe et stupide d '"élection de navigateur" pour réduire le bavardage. Aucun support IPv6 du tout.
    • Logiciel:
      • Prise en charge native sur Windows et OS / 2;
      • nmbdavec nss_wins(une partie de Samba ) sur Linux et BSD;
      • Apparemment, OS X le prend également en charge nativement?

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

  • DNS utilisant un nom de domaine local (interne)
    • Les passerelles domestiques ont généralement cette fonction intégrée, dans le cadre du cache DNS local. Souvent, c'est juste normal dnsmasq, que vous pouvez exécuter manuellement si vous configurez une passerelle basée sur Linux / BSD.
    • Ils prennent le nom d'hôte de votre requête DHCP, l'enregistrent dans dnsmasq sous un domaine similaire homeet s'offrent comme serveur DNS principal (agissent comme 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ôte des hôtes IP statiques), et a généralement tendance à être plutôt instable selon mon expérience.
    • Logiciel:
      • Un client DHCP normal sur les hôtes. Doit envoyer l'option hostname.
      • dnsmasqsur la passerelle. (Les configurations plus grandes pourraient utiliser dhcpd+ named.)

Méthodes impliquant une configuration manuelle:

  • DNS utilisant votre propre nom de domaine
    • Fonctionne partout. ( Cependant, cela ne vous aidera pas à vous connecter via Internet.)
    • 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 gratuits
    • Toujours DNS, juste gratuit (ou bien moins cher qu'un domaine), mais aussi assez limité. Des services comme FreeDNS et Dyn proposent l'enregistrement de sous-domaines individuels sous un 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 machine client.
    • ( %SystemRoot%\system32\drivers\etc\hostssous Windows)
  • Configuration SSH
    • Le champ "Hostname" dans PuTTY, ou ~/.ssh/configsur OpenSSH.
    • Doit être configuré manuellement.
  • PostIt note partout sur votre bureau
    • Vraiment pas cher. Aucune politique de dénomination. Types de données infinis.
    • Plutôt peu fiable. Doit être distribué manuellement. Pas de TTL, ce qui entraîne souvent la mise en cache des informations périmées 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 pourriez les trouver tamponnés derrière votre bureau.)
user1686
la source
7
Haha, j'aime l'option de notes PostIt :)
Ryall
1
+1 pour mDNS / Avahi. Avahi est installé par défaut sur de nombreuses distributions, mais peut être une installation de package pour la vôtre.
Broam
1
Dans Debian, vous devrez installer Avahi manuellement.
Martin Ueding
2
@grawity Bonne réponse. Une chose à améliorer cependant: Gardez à l'esprit que le DNS / DHCP local fonctionne parfaitement sans un domaine enregistré. Jetez simplement un Raspberry PI sous votre bureau et installez un petit serveur avec par exemple dnsmasq.
paradoxon
1
@paradoxon: Merci, j'ai oublié de le mentionner. (La plupart des passerelles domestiques exécutent déjà dnsmasq ou quelque chose de similaire mais de plus fou.)
user1686
4

Deux options.

  • Tous les services:

Mettez-y une entrée /etc/hosts. Ne touchez pas aux lignes existantes, ajoutez-en une nouvelle.

  • ssh uniquement:

Ajoutez une Hoststrophe ~/.ssh/configavec le nom que vous souhaitez utiliser, puis ajoutez les options souhaitées en dessous. Voir man 5 ssh_configpour plus de détails.

Host myserver
    Hostname 192.168.123.234
    Protocol 2
Ignacio Vazquez-Abrams
la source
4

Si vous souhaitez accéder à la boîte Linux à partir d'un ordinateur arbitraire, vous aurez besoin d'un nom de domaine. Utilisez un service DNS dynamique pour pointer un nom de domaine vers 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'IP de votre ordinateur Linux en constante évolution.

M456
la source
1
Juste pour clarifier, l'adresse IP de l'ordinateur peut toujours changer (selon la façon dont votre FAI gère ce genre de choses), mais vous n'aurez pas à vous en soucier car le service DNS dynamique fournit un nom de domaine qui correspond toujours à quelque soit le courant L'adresse IP de l'ordinateur est.
David Z
4

Depuis Windows 7 (selon votre modification) ...

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 de le cingler à partir d'une invite de commande:

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

Cela ne fonctionnera que depuis votre LAN. La connexion au "monde" (selon votre commentaire ajouté) est une bête complètement différente impliquant une configuration DNS (dyndns, godaddy, etc.) et un routeur comme la traduction d'adresses réseau (NAT) et al.

Mat
la source
2

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

Broam
la source
1
Mon réseau fait cela à cause d'Avahi (réseau Zeroconf). Je ne connais pas la viabilité d'un client / serveur Zeroconf sous Windows.
Broam
1

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 serai root sur bert:

bert:~#

Je fais cela entre deux machines Ubuntu, mais je suppose que cela fonctionnerait aussi avec du mastic. (Je ne sais pas comment me connecter à Windows depuis Ubuntu, voir d'autres réponses sur samba.)

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

idbrii
la source
1
Cela est dû à Avahi, un démon Zeroconf installé par défaut. Cela ne va pas l'aider sur Windows, à moins qu'il n'ait un client pour une autre raison (peut-être qu'iTunes en installe un? Je ne peux pas le dire.)
Broam