Question Se connecter à Linux par nom plutôt que par IP


Je suis nouveau sur Linux (actuellement sous Ubuntu 10.04) et je viens de terminer la configuration de l’accès SSH à ma machine Linux. Actuellement, je dois utiliser ssh root@x.x.x.x pour se connecter mais préférez plutôt 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, alors toute aide serait très appréciée. S'il vous plaît, allez-y lentement, comme mentionné - je suis encore nouveau à ce sujet.


EDIT 1

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


14
2017-09-07 15:36


origine


Essayez-vous de vous connecter à partir de votre réseau local ou de n'importe où dans le monde? - Karl Bielefeldt
En outre, FYI autorisant les connexions via ssh en tant que root est généralement considéré comme une mauvaise idée du point de vue de la sécurité. Il est recommandé de se connecter en tant qu'utilisateur régulier et d'utiliser su ou sudo à partir de là. - Karl Bielefeldt
Tant mon réseau local que le monde entier (bien que je sache comment configurer l’accès au monde pour que cette question concerne davantage les réseaux locaux) - et la racine @ était plus que tout -, j’utilise effectivement un utilisateur. - Ryall
Beaucoup de bonnes réponses - merci à tout le monde - même si je devais en choisir un, alors j'ai choisi le plus détaillé. - Ryall


Réponses:


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 une recherche de nom et une découverte de service.
    • Les noms d'hôte sont toujours sous la forme prénom.local.
    • Logiciel:
      • Bonjour sur Windows;
      • Avahi avec nss_mdns sous Linux;
      • supporté nativement sous OS X et iOS (et, soi-disant, Android).
  • LLMNR
    • Utilisé pour la résolution de noms par Windows Vista et versions ultérieures, en tant qu'alternative moderne aux services de noms NetBIOS.
    • Très similaire à mDNS, mais possède moins de fonctionnalités - en particulier, il manque la découverte de services (Windows utilise le protocole WS-Discovery pour cela).
    • Utilise des noms d'hôte nus (comme NBNS, mais contrairement à mDNS).
    • Logiciel:
      • Supporté nativement par Windows Vista et supérieur;
      • systemd-resolved avec nss_resolve (partie de systemd 216) sous Linux.
  • NetBIOS nom des services
    • Partie de la vieux Suite de protocole 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 les diffusions IPv4 (un peu bavard) et dispose de son propre protocole complexe et stupide de "choix de navigateur" pour réduire le bavardage. Pas de support IPv6 du tout.
    • Logiciel:
      • Nativement supporté sur Windows et OS / 2;
      • nmbd avec nss_wins (partie de Samba) sur Linux et BSD;
      • Apparemment, OS X le supporte aussi nativement?

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

  • DNS en utilisant un nom de domaine local (interne)
    • Les passerelles domestiques ont tendance à avoir ce intégré, dans le cadre du cache DNS local. Souvent c'est juste régulier 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, enregistrez-le dans Dnsmasq sous un domaine comme home, et s'offrir comme serveur DNS principal (agir 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ôtes des hôtes IP statiques), et a généralement tendance à être plutôt irrégulière.
    • Logiciel:
      • Un client DHCP régulier 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 en utilisant votre propre nom de domaine
    • Fonctionne partout (Ne vous aidera pas réellement relier 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 gratuits
    • Encore le DNS, juste gratuit (ou beaucoup moins cher qu'un domaine), mais aussi assez limité. Des services comme FreeDNS et Dyn offre l'enregistrement des sous-domaines individuels sous un domaine qu'ils contrôlent (par exemple myhost.dyndns.com).
      • Bien 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 adresses IP - les paires nom d'hôte, qui doivent être configurées manuellement sur chaque ordinateur client.
    • (%SystemRoot%\system32\drivers\etc\hosts sous Windows)
  • Configuration SSH
    • Le champ "Hostname" dans PuTTY, ou ~/.ssh/config sur OpenSSH.
    • Doit être configuré manuellement.
  • Notes Post-it sur tout votre bureau
    • Très bon marché. Pas de politique de nommage. 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 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 un simple enregistrement de colle sur votre moniteur. (Trois mois plus tard, vous pourriez les trouver derrière votre bureau.)

31
2017-09-07 20:19



Haha, j'aime l'option de notes PostIt :) - Ryall
+1 pour mDNS / Avahi. Avahi est installé par défaut sur de nombreuses distributions, mais peut être une installation de package pour le vôtre. - Broam
Dans Debian, vous devrez installer Avahi manuellement. - Martin Ueding
@grawity Bonne réponse. Une chose à améliorer cependant: N'oubliez pas que le DNS / DHCP local fonctionne parfaitement sans domaine enregistré. Il suffit de lancer un Raspberry PI sous votre bureau et de configurer un petit serveur avec, par exemple, dnsmasq. - paradoxon
@paradoxon: Merci, j'ai oublié de le mentionner. (La plupart des passerelles à la maison utilisent déjà Dnsmasq ou quelque chose de similaire, mais plus dingue.) - grawity


Si vous souhaitez accéder à la boîte Linux à partir d'un ordinateur arbitraire, vous avez 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 aurez configuré cela, vous aurez l'avantage supplémentaire de ne pas avoir à vous soucier de la modification de l'adresse IP de votre ordinateur Linux.


4
2017-09-07 15:50



Simplement pour clarifier, l'adresse IP de l'ordinateur peut encore changer (selon la façon dont votre FAI gère ces choses), mais vous n'aurez pas à vous en préoccuper puisque le service DNS dynamique fournit un nom de domaine qui correspond toujours à L'adresse IP de l'ordinateur est. - David Z


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:

Ajouter un Host strophe à ~/.ssh/config Avec le nom que vous souhaitez utiliser, 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
2017-09-07 15:42





À 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-le depuis une invite de commande:

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

Cela ne fonctionnera que depuis votre réseau local. Connexion à elle de « monde » (par votre commentaire ajouté) est une bête totalement différente impliquant une adresse réseau DNS (DynDNS, GoDaddy, etc.) et la configuration du routeur comme (NAT) traduction et al.


3
2017-09-07 17:46





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 quel est le nom d'une machine Linux.


2
2017-09-07 17:59



Mon réseau le fait grâce à Avahi (réseau Zeroconf). Je ne connais pas la viabilité d'un client / serveur Zeroconf sous Windows. - Broam


J'utilise aussi 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 sur le même réseau:

Mon invite ressemble à ceci sur ernie:

ernie:~$ 

Si je tape ceci:

ernie:~$ ssh root@bert.local

Je serai root sur bert:

bert:~#

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

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


1
2017-09-07 18:03



Ceci 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