Połącz się z Linuksem według nazwy zamiast adresu IP

18

Jestem nowy w Linuksie (obecnie działam na Ubuntu 10.04) i właśnie skończyłem konfigurować dostęp SSH do mojego Linuxa. Obecnie muszę używać ssh [email protected]do łączenia, ale wolałbym raczej zamienić adres IP na nazwę komputera (jak w systemie Windows z \\name) lub nazwę domeny (jak computername.example.com).

Naprawdę nie wiem od czego zacząć, więc jakakolwiek pomoc byłaby najbardziej doceniana. Proszę iść powoli, jak wspomniano - wciąż jestem w tym nowy.


EDYCJA 1

Zupełnie zapomniałem wspomnieć, że próbuję połączyć się z Windows 7 (przez PuTTY) - przepraszam.

Ryall
źródło
Czy próbujesz połączyć się tylko z sieci LAN lub z dowolnego miejsca na świecie?
Karl Bielefeldt,
6
Również FYI zezwalające na połączenia przez ssh jako root jest ogólnie uważane za zły pomysł ze względów bezpieczeństwa. Zalecane jest zalogowanie się jako zwykły użytkownik i używanie stamtąd su lub sudo.
Karl Bielefeldt,
Zarówno moja sieć LAN, jak i świat (choć myślę, że wiem, jak skonfigurować dostęp do świata, więc to pytanie dotyczy więcej sieci LAN) - a root @ był bardziej przykładem niż cokolwiek innego - faktycznie używam użytkownika.
Ryall,
Mnóstwo świetnych odpowiedzi - dzięki wszystkim - choć musiałem wybrać jedną, więc wybrałem najbardziej szczegółową.
Ryall,

Odpowiedzi:

36

Protokoły wykrywania LAN w konfiguracji zerowej, w kolejności preferencji:

  • mDNS
    • Używany głównie przez produkty Apple i niektóre programy Linuksa, ale dostępny również dla systemu Windows i ewentualnie innych platform; używa multiemisji IP.
    • Umożliwia wyszukiwanie nazw i wykrywanie usług.
    • Nazwy hostów są zawsze w formie name.local.
    • Oprogramowanie:
      • natywnie obsługiwany w systemie Windows 10.1709 i nowszych (musi być włączony przez rejestr);
      • Bonjour w starszych systemach Windows;
      • Avahi z nss_mdnssystemem Linux;
      • natywnie obsługiwany w OS X i iOS (i podobno w Androidzie).
  • LLMNR
    • Używany do rozpoznawania nazw w systemie Windows Vista i nowszych, jako nowoczesna alternatywa dla usług nazw NetBIOS.
    • Bardzo podobny do mDNS, ale ma mniej funkcji - w szczególności brakuje wykrycia usługi (Windows używa do tego protokołu WS-Discovery).
    • Używa nagich nazw hostów (takich jak NBNS, ale w przeciwieństwie do mDNS).
    • Oprogramowanie:
      • Natywnie obsługiwany przez system Windows Vista i nowsze wersje;
      • systemd-resolvedz nss_resolve(częścią systemu 216) w systemie Linux. .
  • Usługi nazw NetBIOS
    • Część starego pakietu protokołów sieciowych NetBIOS używanego przez Windows, OS / 2, MS-DOS ... Nadal w użyciu. Nie jest to wymówka, aby zacząć używać go w nowych sieciach.
    • Zapewnia rozpoznawanie nazw i (do pewnego stopnia) wykrywanie usług - w systemie Windows także „Network Neighborhood” lub „My Network Places”.
    • Wykorzystuje transmisje IPv4 (nieco gadatliwe) i ma swój własny złożony i głupi protokół „wyboru przeglądarki”, aby zredukować ociężałość. W ogóle nie obsługuje IPv6.
    • Oprogramowanie:
      • Natywnie obsługiwany w systemach Windows i OS / 2;
      • nmbdz nss_wins(częścią Samby ) w systemach Linux i BSD;
      • Najwyraźniej OS X obsługuje go także natywnie?

Metody, które są często wstępnie skonfigurowane:

  • DNS przy użyciu lokalnej (wewnętrznej) nazwy domeny
    • Bramy domowe zwykle mają to wbudowane, jako część lokalnej pamięci podręcznej DNS. Często jest to zwykłe narzędzie dnsmasq, które można uruchomić ręcznie, jeśli konfigurujesz bramę opartą na systemie Linux / BSD.
    • Biorą nazwę hosta z twojego żądania DHCP, rejestrują go w dnsmasq w domenie podobnej do homei oferują siebie jako główny serwer DNS (działają jako pamięć podręczna DNS).
    • Działa domyślnie z większością systemów operacyjnych, ale tylko z DHCP (brama nie zna nazw hostów statycznych adresów IP) i ogólnie wydaje mi się dość niestabilna z mojego doświadczenia.
    • Oprogramowanie:
      • Zwykły klient DHCP na hostach. Musisz wysłać opcję nazwy hosta.
      • dnsmasqna bramie. (Większe konfiguracje mogłyby używać dhcpd+ named).

Metody wymagające ręcznej konfiguracji:

  • DNS przy użyciu własnej nazwy domeny
    • Działa wszędzie. (Nie pomoże ci to jednak połączyć się przez Internet.)
    • Dynamiczny DNS jest możliwy, jeśli korzystasz z DHCP i kontrolujesz serwer DNS; w przeciwnym razie wszystkie dane są statyczne.
    • Musisz posiadać nazwę domeny (która kosztuje kilka dolców).
  • bezpłatne subdomeny DNS
    • Nadal DNS, po prostu darmowy (lub znacznie tańszy niż domena), ale także dość ograniczony. Usługi takie jak FreeDNS i Dyn oferują rejestrację poszczególnych subdomen w kontrolowanej przez nich domenie (na przykład myhost.dyndns.com).
      • Zbyt często subdomena została już wybrana przez kogoś innego ...
    • Dynamiczne aktualizacje DNS są często dozwolone (w stylu DynDNS).
  • /etc/hosts
    • Plik tekstowy z listą adresu IP - pary nazwy hosta, którą należy ręcznie skonfigurować na każdym komputerze klienckim.
    • ( %SystemRoot%\system32\drivers\etc\hostsw systemie Windows)
  • Konfiguracja SSH
    • Pole „Nazwa hosta” w PuTTY lub ~/.ssh/configw OpenSSH.
    • Musi zostać skonfigurowany ręcznie.
  • PostIt zauważa na całym biurku
    • Bardzo tani. Brak zasad nazewnictwa. Nieskończone typy danych.
    • Raczej zawodny. Musi być dystrybuowany ręcznie. Brak TTL, co często skutkuje buforowaniem nieaktualnych informacji przez miesiące, dopóki ktoś tego nie zauważy. Algorytmy zapytań są nieefektywne. Odpowiedzi na zapytania łatwo się gubią, czasami pozostawiając po sobie tylko ślad kleju na monitorze. (Trzy miesiące później możesz znaleźć je buforowane za biurkiem.)
użytkownik1686
źródło
7
Haha, podoba mi się opcja notatek PostIt :)
Ryall,
1
+1 dla mDNS / Avahi. Avahi jest instalowany domyślnie na wielu dystrybucjach, ale może być instalacją pakietu dla ciebie.
Broam,
1
W Debianie będziesz musiał zainstalować Avahi ręcznie.
Martin Ueding
2
@grawity Dobra odpowiedź. Jedno należy jednak poprawić: pamiętaj, że lokalny DNS / DHCP działa idealnie bez zarejestrowanej domeny. Po prostu wrzuć Raspberry PI pod biurko i skonfiguruj mały serwer np. Z dnsmasq.
paradokson,
1
@paradoxon: Dzięki, zapomniałem o tym wspomnieć. (Większość bram domowych już działa dnsmasq lub coś podobnego, ale bardziej złośliwe.)
user1686,
4

Dwie opcje.

  • Wszystkie usługi:

Wpisz w to wpis /etc/hosts. Nie dotykaj istniejących linii, dodaj nową.

  • tylko ssh:

Dodaj Hostzwrotkę ~/.ssh/configz nazwą, której chcesz użyć, a następnie dodaj żądane opcje poniżej. Zobacz man 5 ssh_configpo więcej szczegółów.

Host myserver
    Hostname 192.168.123.234
    Protocol 2
Ignacio Vazquez-Abrams
źródło
4

Jeśli chcesz uzyskać dostęp do Linux-a z dowolnego komputera, potrzebujesz nazwy domeny. Użyj dynamicznej usługi DNS, aby skierować nazwę domeny na komputer z systemem Linux (lub router, z którym jest połączony). Gdy to skonfigurujesz, da ci to dodatkową zaletę, że nie będziesz musiał martwić się, że IP twojego komputera z Linuksem ciągle się zmienia.

M456
źródło
1
Aby wyjaśnić, adres IP komputera może się nadal zmieniać (w zależności od tego, jak Twój dostawca usług internetowych zarządza takimi rzeczami), ale nie musisz się tym martwić, ponieważ dynamiczna usługa DNS zapewnia nazwę domeny, która zawsze jest odwzorowana na bieżącą Adres IP komputera to.
David Z
4

Z systemu Windows 7 (według edycji) ...

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

Po uruchomieniu notatnika przejdź do dolnej części pliku i dodaj swój adres IP i nazwę hosta:

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

Zapisz plik, a następnie spróbuj pingować go z wiersza polecenia:

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

Działa to tylko z Twojej sieci LAN. Łączenie się z nim ze „świata” (na podstawie dodanego komentarza) to zupełnie inna bestia obejmująca DNS (dyndns, godaddy itp.) I konfigurację routera, taką jak translacja adresów sieciowych (NAT) i in.

Matt
źródło
2

Będziesz chciał zbadać Sambę lub Winbinda. Moja sieć oparta na systemie Linux (w tym router) może ze sobą rozmawiać według nazwy hosta, ale nie jestem pewien, jak powiedzieć systemowi Windows, jak nazywa się maszyna z systemem Linux.

Broam
źródło
1
Moja sieć robi to z powodu Avahi (sieć Zeroconf). Nie znam możliwości klienta / serwera Zeroconf w systemie Windows.
Broam,
1

Używam również Ubuntu 10.04 i mogę połączyć się z moimi komputerami, używając ich nazwy. Powiedzmy, że mam komputery o nazwach Ernie i Bert, które są w tej samej sieci:

Mój monit wygląda tak na Ernie:

ernie:~$ 

Jeśli napiszę to:

ernie:~$ ssh [email protected]

Będę root na Bercie:

bert:~#

Robię to między dwiema maszynami Ubuntu, ale przypuszczam, że to też działałoby w kitach. (Nie wiem o łączeniu się z Windows z Ubuntu, zobacz inne odpowiedzi na temat samby.)

Aby to działało, musisz zainstalować sshd w Ubuntu: sudo apt-get install openssh-server

idbrii
źródło
1
Wynika to z Avahi, demona Zeroconf, który jest instalowany domyślnie. Nie pomoże mu w systemie Windows, chyba że ma klienta z innego powodu (może iTunes go zainstaluje? Nie mogę powiedzieć.)
Broam,